2

このナビゲーション ビューの配色に従っています。 ここに画像の説明を入力

背景、テキスト、アイコンの 3 つのセレクターを作成しました。セレクターを設定すると、ナビゲーション ビューは次のようになります。 ここに画像の説明を入力

問題は、アイテムが選択されていないことです。1 つのアイテムを押すと、すべてのアイテムの背景色が灰色に変わります。アイコンが原色になることはありません。

XML は次のとおりです。

 <android.support.design.widget.NavigationView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            android:background="@android:color/white"
            app:itemTextColor="@drawable/nav_item_text"
            app:itemIconTint="@drawable/nav_item_icon_tint"
            app:itemBackground="@drawable/nav_item_background"
            app:headerLayout="@layout/drawer_student_data_header"
            app:menu="@menu/drawer"
            android:id="@+id/navigationView"/>

nav_item_icon_tint.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="@color/gray_600"/>
    <item android:state_selected="true" android:color="@color/primary" />
    <item android:color="@color/gray_600" />
</selector>

nav_item_text.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="@color/black_87_percent"/>
    <item android:state_selected="true" android:color="@color/primary" />
    <item android:color="@color/black_87_percent" />
</selector>

nav_item_background.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/gray_400"/>
    <item android:state_selected="true" android:drawable="@color/gray_200" />
    <item android:drawable="@android:color/white" />
</selector>
4

3 に答える 3

1

私は同様の問題を抱えていましたが、それを解決する方法は、3つのセレクターすべてandroid:state_checkedで代わりに使用することですandroid:state_selected(少なくともそれで解決しました)。

于 2016-01-02T13:50:27.750 に答える