Android - Navigation View item menu background color

Emmanuel Loisance picture Emmanuel Loisance · Jul 4, 2015 · Viewed 51.3k times · Source

i try to change color of my item Navigation View menu :

styles.xml

<item name="android:activatedBackgroundIndicator">@drawable/activated_background</item>

activated_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@color/White" />
    <item android:state_focused="true" android:drawable="@color/White" />
    <item android:state_activated="true" android:drawable="@color/White" />
    <item android:drawable="@android:color/transparent" />
</selector>

drawer.xml :

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

<group
    android:id="@+id/group_1">
    <item
        android:id="@+id/drawer_menu_account"
        android:checked="false"
        android:title="@string/menu_account"
        android:icon="@drawable/ic_account_grey600_24dp" />
    <item
        android:id="@+id/drawer_menu_my_post"
        android:checked="false"
        android:title="@string/menu_my_post"
        android:icon="@drawable/ic_pin_grey600_24dp" />
</group>
[...]

Background color don't change.. What am i doing wrong ?

Answer

ZakDaniels99 picture ZakDaniels99 · Jul 10, 2015

You don't set the drawable for the background of a Navigation View item in your styles.xml file. Open up your XML layout file containing your Navigation View widget, and add the following line to the widget's attributes:

app:itemBackground="@drawable/activated_background.xml"

If you're having trouble with the "app" pointer, add the following line in as well:

xmlns:app="http://schemas.android.com/apk/res-auto"

Note that this only changes the colour of the background of a selected list item. If you'd like the icon and text colour to change as well, use the app:itemTextColor attribute instead.