更改底部导航栏选中项图标的颜色 - androidx

3

XML文件

 <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"/>

可绘制文件:

<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依赖关系

实现'androidx.appcompat:appcompat:1.0.0-alpha01'

2个回答

1
选择器的最后一项通常没有任何显式状态。这是因为它可能处于比仅仅“已选中”或“未选中”更多的状态中。
<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>

最新的项目作为默认的后备状态。
除非明确检查,否则应始终为黑色。

我不知道这是关于图标的事情。至于图标,需要在代码中进行更改,请参见https://dev59.com/2VgR5IYBdhLWcg3wC5in。 - shkschneider

0

试试这个,它对我有效

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"/>

可绘制的 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>

1
是的,Android支持库可以工作,但我正在使用新的安卓X AppCompat库。 - Rambabu Padimi
我犯了一个错误,它在androidx中也可以工作。 我在类文件中犯了一个错误 bottomNavigationDashboardId.itemIconTintList = null - Rambabu Padimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接