底部导航图标颜色仅在第二次点击后更改.如何在第一次点击时进行



当我单击底部导航图标时,图标的颜色不会更改。但是如果我再次单击它,则会更改。

<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>
如果你

第一次触摸布尔变量,你可以用布尔变量来管理它,让布尔变量为真,触摸后让布尔变量为假,整个过程将在条件下进行,并在布尔变量有假值时设置你的背景。

在制作选择器时,请始终将默认状态保留在末尾,否则仅使用默认状态。您需要将选择器中的项目重新排序为:

根据您的要求更改颜色选择器.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"/> 

这将为您工作。

最新更新