我已经尝试过查看这个问题的几个SO答案,但它们似乎都不适合我。
我正在尝试更改导航抽屉中所选项目的背景颜色(the gray)。
这是我的代码:
menu_drawer
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:icon="@drawable/ic_one"
android:id="@+id/nav_first_fragment"
android:title="One"
android:checked="true"/>
<item
android:icon="@drawable/ic_two"
android:id="@+id/nav_second_fragment"
android:title="Two" />
<item
android:icon="@drawable/ic_three"
android:id="@+id/nav_third_fragment"
android:title="Three" />
</group>
</menu>
activity_main
:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:elevation="0dp">
<include
layout="@layout/toolbar"
/>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nvView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@android:color/white"
app:menu="@menu/menu_drawer" />
</android.support.v4.widget.DrawerLayout>
请帮忙!
答案 0 :(得分:1)
检查此属性
itemBackground
然后在你的颜色目录中有一个xml文件,就像这样
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#c0c0c0" android:state_checked="true" />
<item android:color="#ffffff" />
</selector>
然后添加到NavigationView
应用程式:itemBackground = “@颜色/ nv_list”
<强>更新强>
选中此doc
答案 1 :(得分:0)
将以下文件放入可绘制文件夹:
list_selectoritem.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_item_bg_normal" android:state_activated="false"/>
<item android:drawable="@drawable/list_item_bg_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/list_item_bg_pressed" android:state_activated="true"/>
</selector>
list_item_bg_pressed.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/list_background_pressed"
android:endColor="@color/list_background_pressed"
android:angle="90" />
</shape>
list_item_bg_normal.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/list_background"
android:endColor="@color/list_background"
android:angle="90" />
</shape>
将以下代码放在color.xml
中<color name="list_background">#E2231A</color>
<color name="list_background_pressed">#C4BEB6</color>
<color name="list_divider">#ffffff</color>
然后将以下更改应用于您的抽屉列表视图;
<ListView
android:id="@+id/list_slidermenu"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@null"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selectoritem"
android:background="@color/list_background"/>