材料设计导航抽屉项目选择样式

时间:2016-02-23 12:05:47

标签: android material-design

下午,

我试图找到答案,但似乎没有任何直接的解释,我希望这应该是非常简单的!

我刚刚开始使用材料设计导航抽屉,需要更改抽屉中所选项目的背景颜色。

这是抽屉内物品的代码。

<?xml version="1.0" encoding="utf-8"?>   
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group android:checkableBehavior="single">
    <item
        android:id="@+id/item_1"
        android:icon="@drawable/item1"
        android:title="Item 1" />
    <item
        android:id="@+id/item_2"
        android:icon="@drawable/item2"
        android:title="Item 2" />
    <item
        android:id="@+id/item_3"
        android:icon="@drawable/item3"
        android:title="Item 3" />
</group>

我的MainActivity xml中有以下内容。

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:background="#202020"
    app:itemTextColor="@android:color/white"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" />

我用背景和文字颜色管理了抽屉的样式,但如上所述,我现在需要更改所选项目的背景颜色。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

styles.xml 添加新样式:

res / values / styles.xml

<style name="TextAppearance">
    <item name="colorControlHighlight">#selectedItemColor</item>
</style>

将新样式设置为NavigationView

res / layout / activity_main.xml

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    app:menu="@menu/activity_main_drawer" 
    app:theme="@style/TextAppearance" />

答案 1 :(得分:0)

您必须在抽屉物品中为未选中项目设置**android:checked="false"**

<?xml version="1.0" encoding="utf-8"?>   
<menu xmlns:android="http://schemas.android.com/apk/res/android">

<group android:checkableBehavior="single">
    <item
        android:id="@+id/item_1"
        android:checked="false"
        android:icon="@drawable/item1"
        android:title="Item 1" />
    <item
        android:id="@+id/item_2"
        android:checked="false"
        android:icon="@drawable/item2"
        android:title="Item 2" />
    <item
        android:id="@+id/item_3"
        android:checked="false"
        android:icon="@drawable/item3"
        android:title="Item 3" />
</group>

然后您必须使用以下代码编程来更改所选项目背景颜色

 navigationView.setNavigationItemSelectedListener(
    new NavigationView.OnNavigationItemSelectedListener() {

            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                if (menuItem.isChecked())
                    menuItem.setChecked(false);
                else
                    menuItem.setChecked(true);
相关问题