web-dev-qa-db-fra.com

BottomNavigationBar-change la couleur de l'icône de l'onglet

J'ai intégré la barre de navigation de la barre inférieure sur mon application. Mais quand je glisse, la couleur de l'onglet ne change pas. C'est bizarre parce que j'ai un fichier de sélection. Une idée pour résoudre ce problème?

Activity.Java

BottomNavigationView bottomNavigationView = (BottomNavigationView)
            findViewById(R.id.bottom_navigation);


    bottomNavigationView.setOnNavigationItemSelectedListener(
            new BottomNavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                    switch (item.getItemId()) {
                        case R.id.bb_menu_arac:
                            fragment = new AraclarimFragment();
                            break;
                        case R.id.bb_menu_yaklasan:
                            fragment = new YaklasanlarFragment();
                            break;
                        case R.id.bb_menu_yakin:
                            fragment = new Yakinimdakiler();
                            break;

                    }
                    final FragmentTransaction transaction = fragmentManager.beginTransaction();
                    transaction.replace(R.id.main_container, fragment).commit();
                    return true;
                }


            });

selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:color="@color/beyaz" Android:state_enabled="true" />
<item Android:color="@color/colorPrimaryDark" Android:state_enabled="false" />
</selector>

activiy.xml

<Android.support.design.widget.BottomNavigationView
    Android:id="@+id/bottom_navigation"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_gravity="bottom|end"
    app:itemBackground="@color/colorPrimary"
    app:itemIconTint="@color/beyaz"
    app:itemTextColor="@color/beyaz"
    app:menu="@menu/bottombar_menu" />
14
Yunus Haznedar

Passez à app:itemIconTint="@drawable/selector"

Modifiez également votre selector.xml pour ça:

<?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/beyaz" />
<item Android:color="@color/colorPrimaryDark"  />
</selector>
29
Anurag Singh

Vous devez définir le sélecteur comme itemIconTint de votre BottomNavigationView. Quelque chose comme

 <Android.support.design.widget.BottomNavigationView
    Android:id="@+id/bottom_navigation"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_gravity="bottom|end"
    app:itemBackground="@color/colorPrimary"
    app:itemIconTint="@drawable/selector"
    app:itemTextColor="@color/beyaz"
    app:menu="@menu/bottombar_menu" />
3
Jonathan Aste

Vous devez l'ajouter dans votre BottomNavigationViewAndroid:theme="@style/Base.ThemeOverlay.AppCompat.Dark.ActionBar" Cela vous aidera à changer la couleur de l'icône.

0
Harsh Kapoor