Rambabu Padimi
Rambabu Padimi

Reputation: 579

Change bottom navigation selected itemIconTinitcolor - androidx

xml file

 <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/bottomNavigationDashboardId"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"
            android:showAsAction="always|withText"
            app:itemIconTint="@drawable/bottom_navigation_tab_selector"
            app:itemTextColor="@drawable/bottom_navigation_tab_selector"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:menu="@menu/menu_bottom_navigation"
            app:labelVisibilityMode="labeled"
            android:background="#ffffff"
            app:elevation="0dp"/>

drawable file:

<selector xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"
          tools:ignore="MissingDefaultResource">
    <item
          android:color="@color/colorAccent"
          android:state_checked="true"/>
    <item android:color="#000000"
          android:state_checked="false"/>

</selector>

Gradle dependency

implementation 'androidx.appcompat:appcompat:1.0.0-alpha01'

Upvotes: 3

Views: 1575

Answers (2)

Android Geek
Android Geek

Reputation: 9225

Try this, it works for me

xml--

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@color/colorPrimary"
    app:itemIconTint="@drawable/bottom_nav_colors"
    app:itemTextColor="@drawable/bottom_nav_colors"
    app:menu="@menu/bottom_navigation_items"/>

drawable 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/white" />
<item android:color="@color/black" />
</selector>

Upvotes: 0

shkschneider
shkschneider

Reputation: 18243

The last item of a selector is usually without any explicit state. And that is because if can be in a lot more states than just checked or unckecked.

<selector xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"
          tools:ignore="MissingDefaultResource">
    <item
          android:color="@color/colorAccent"
          android:state_checked="true"/>
    <item android:color="#000000"/>

</selector>

The latest items acts as a default, fallback state.

This should be black always unless explicitely checked.

Upvotes: 1

Related Questions