底部导航图标颜色仅在第二次点击后才更改。首次点按时是否可以进行?

时间:2018-01-19 04:43:31

标签: android android-layout

当我点击底部导航图标时,图标的颜色不会改变。但如果我再次点击它就会改变。

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

2 个答案:

答案 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)

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