在网上搜了好半天,才找到selecter文件该怎么写才能改变BottomNavigationView每个图标和下面的文字的默认样式(这里主要是改变颜色),为此写一篇博客加深印象并为遇到同样问题的同学们提供一个解决思路。
在BottomNavigationView的属性中加入itemIconTint和itemTextColor属性;前者可以改变每个item被点击时的图标样式,后者可以改变图标下面的文字的样式。
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:itemIconTint="@drawable/bottom_nav_icon"
app:itemTextColor="@drawable/bottom_nav_text"
app:menu="@menu/nav_menu" />
修改图标和文字需要对xml文件做的修改相同,其步骤如下:
在res中的drawable文件夹中创建一个xml文件并在其中加入如下内容:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:color="@color/colorBlack" />
<item android:state_pressed="true" android:color="@color/colorBlack" />
<item android:color="@color/colorGray" />
</selector>
其中state_pressed和state_checked表示某个item被按下和点击后的显示效果,将标签中的color改为你想要的值即可;最下面只有color属性的标签中是item未被点击时的颜色。
然后将itemIconTint和itemTextColor属性设置为相应的xml文件即可。