如何在导航视图中为子菜单指定自定义backgroundcolor?

时间:2016-03-29 10:32:27

标签: android xml android-navigationview

我试图在导航视图中为子菜单提供与其他项目不同的颜色,因此我希望我的整个导航器为白色,但整个子菜单嵌套在导航器中为灰色。我正在使用标准的android studio导航抽屉。

我的代码:

<group android:id="@+id/firstgroup">
    <item
        android:id="@+id/nav_kalender"
        android:icon="@drawable/ic_menu_kalender"
        android:title="@string/str_menu_kalender" />
    <item android:title="@string/str_menu_title_klassement">
        <menu>
            <item
                android:id="@+id/nav_indklassement"
                android:icon="@mipmap/ic_menu_indklassement"
                android:title="@string/str_menu_indklassement" />
            <item
                android:id="@+id/nav_clubklassement"
                android:icon="@drawable/ic_menu_clubklassement"
                android:title="@string/str_menu_clubklassement" />
            <item
                android:id="@+id/nav_nietverwerkteritten"
                android:icon="@drawable/ic_menu_nietverwerkteritten"
                android:title="@string/str_menu_nietverwerkteritten" />
            <item
                android:id="@+id/nav_reglement"
                android:icon="@drawable/ic_menu_reglement"
                android:title="@string/str_menu_reglement" />
            <item
                android:id="@+id/nav_prijzen"
                android:icon="@drawable/ic_menu_prijzen"
                android:title="@string/str_menu_prijzen" />
        </menu>
    </item>
</group>

如果您查看下面的示例,则行之间的所有内容都应采用浅灰色背景颜色

enter image description here

3 个答案:

答案 0 :(得分:0)

像这样。

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

<group>
    <item
        android:id="@+id/nav_home"
        android:checkable="true"
        android:icon="@drawable/ic_dashboard"
        android:title="Home"/>
    <item
        android:id="@+id/nav_messages"
        android:checkable="true"
        android:icon="@drawable/ic_event"
        android:title="Messages"/>
    <item
        android:id="@+id/nav_friends"
        android:checkable="true"
        android:icon="@drawable/ic_headset"
        android:title="Friends"/>
    <item
        android:id="@+id/nav_discussion"
        android:checkable="true"
        android:icon="@drawable/ic_forum"
        android:title="Discussion"/>
</group>

<item android:title="Sub items">
    <menu>
        <item
            android:checkable="true"
            android:icon="@drawable/ic_dashboard"
            android:title="Sub item 1"/>
        <item
            android:checkable="true"
            android:icon="@drawable/ic_forum"
            android:title="Sub item 2"/>
    </menu>
</item>

</menu>

答案 1 :(得分:0)

NavigationMenuView navigationMenuView = (NavigationMenuView)navigationView.getChildAt(0);

NavigationMenuViewRecyclerview的扩展。所以你可以添加一个分隔符ItemDecoration,但你必须检查需要添加分隔符的位置,否则它会被添加到所有元素。

另一种方法是使用多个组而不是单个组

答案 2 :(得分:0)

你可以使用listview而不是像这样在navigationdrawer中使用菜单。这样您就可以在适配器中膨胀的xml文件中提供任何所需的颜色。

ng-click