当我点击底部导航图标时,图标的颜色不会改变。但如果我再次点击它就会改变。
<android.support.design.widget.BottomNavigationView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
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="@color/btm_slctd_clr"
app:itemTextColor="@color/btm_slctd_clr"
app:menu="@menu/bottom_nav_menu" />`
// btm_slctd_clr
<?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/common_signin_btn_dark_text_pressed" />
<item android:state_checked="false" android:color="@color/color_pressed" />
</selector>
答案 0 :(得分:0)
在创建选择器时,始终保持默认状态,否则仅使用默认状态。您需要将选择器中的项目重新排序为:
根据您的要求更改颜色 selector.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="@android:color/holo_blue_dark" />
<item android:color="@android:color/darker_gray" />
</selector>
将其添加到您的布局文件中。像这样:
<android.support.design.widget.BottomNavigationView
app:itemIconTint="@drawable/nav_item_color_state"/>
这对你有用。
答案 1 :(得分:0)
你可以使用布尔变量来管理它,如果你第一次触摸它使布尔变量为真,并且触发使布尔变量为假,整个过程将在条件下进行并在布尔变量具有假值时设置背景