android – BottomNavigationView中的背景颜色变化

前端之家收集整理的这篇文章主要介绍了android – BottomNavigationView中的背景颜色变化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经实现了BottomNavigationView,它可以从新的支持库25.0.0中获得.这是我的代码
<android.support.design.widget.BottomNavigationView
    android:id="@+id/bottom_navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    app:itemBackground="@color/colorPrimary"
    app:itemIconTint="@drawable/text"
    app:itemTextColor="@drawable/text"
    app:menu="@menu/bottom_navigation_main" />

和text.xml drawable

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

使用这个代码,当我点击菜单项时,我可以更改文本颜色,但是当我将相同的东西应用到app:itemBackground时,它显示错误< item>标签需要一个“drawable”属性或子标签来定义drawable.

这是我试过的app:itemBackground

app:itemBackground="@drawable/text"

所以我的问题是如何更改所选菜单项的背景颜色?

解决方法

从这个 medium post发现了一个答案

>我们需要使用android:state_checked而不是android:state_enabled
在onNavigationItemSelected中,您需要使用return true而不是返回false.

并设置背景,我们不能在< item>中使用android:color,我们需要使用android:drawable

所以在这里,当您将其设置为app:itemTextColor和app:itemIconTint时,它如何看起来是xml文件

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

并设置app:itemBackground选择器

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/banner_white" android:state_checked="true"/>
    <item android:drawable="@drawable/banner_green" android:state_checked="false"/>
</selector>

这里banner_white和banner_green是png.

猜你在找的Android相关文章