Reputation: 579
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
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
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