Lorsque je sélectionne un élément dans la barre de navigation inférieure dans Android studio, l'élément d'arrière-plan sélectionné est égal à primarycolor dans values-> colors.xml. Et maintenant je veux changer cette couleur qui n'est pas la même la couleur primaire. comment puis-je la changer?
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
Fragment fragment;
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
fragment = new HomeFragment();
loadFragment(fragment);
return true;
case R.id.navigation_addpost:
fragment = new AddFragment();
loadFragment(fragment);
return true;
case R.id.navigation_notifications:
// mTextMessage.setText(R.string.title_notifications);
return true;
case R.id.navigation_profile:
fragment = new ProfileFragment();
loadFragment(fragment);
return true;
}
return false;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
loadFragment(new HomeFragment());
BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
navigation.setItemTextColor(ColorStateList.valueOf(Color.RED));
}
Pour modifier la couleur de l'icône de l'onglet sélectionné dans BottomNavigationView
, vous devez utiliser le sélecteur.
Créer bottom_navigation_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_checked="true" Android:color="@color/yourSelectedColor" />
<item Android:color="@color/defaultColor" />
</selector>
Appliquer app:itemIconTint="@drawable/bottom_navigation_selector"
à votre BottomNavigationView dans le fichier xml
.
bottomNavigationView.setItemIconTintList(ColorStateList.valueOf(Color.parseColor("#3F51B5")));
Essayer,
navigation.setItemIconTintList(Color.BLUE);
Mettre à jour :
navigation.setItemIconTintList(Color.parseColor("#fafafa"));