我创建了一个带有菜单的导航抽屉布局。我想改变背景,但似乎我无法做到这一点。我已经尝试过这里给出的解决方案,比如创建一个可绘制的nav_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@color/black_text"/>
<item android:state_checked="false" android:drawable="@color/grey_55"/>
</selector>
我在NavigationView布局xml上使用这个drawable:
app:itemBackground = "@drawable/nav_bg.xml"
但是当我运行应用程序时,它只显示@ color / grey_55颜色,当我按下它时它不会改变。
答案 0 :(得分:1)
在您的NavigationView中添加:
app:itemIconTint="@color/menu_text_color"
app:itemTextColor="@color/menu_text_color"
app:itemBackground="@drawable/menu_background_color`"
在menu_background_color.xml中:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/transparent"android:state_checked="false"/>
<item android:drawable="@color/colorPrimary" android:state_checked="true"/>
</selector>
在menu_text_color.xml中:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/white" android:state_checked="true" />
<item android:color="@color/black" android:state_checked="false"/>
</selector>
答案 1 :(得分:0)
最简单的方法
在drawable中创建.xml条目让我们说nav_checked_item_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/nav_checked_item" android:state_checked="true"/>
</selector>
为选中的项目背景表示创建第二个drawable,例如nav_checked_item.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#6633b5e5"/>
</shape>
现在将app:itemBackground =“@ drawable / nav_checked_item_selector”添加到您的NavigationView布局。
答案 2 :(得分:0)
试试这个
打开 styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:activatedBackgroundIndicator">@drawable/drawer_list_selector
</item>
</style>
<强> 2。在res / drawable文件夹下创建** drawer_list_selector.xml 文件**
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"android:drawable="@drawable/light_gray_color"/>
<item android:state_activated="true"android:drawable="@drawable/red_color"/>
<item android:drawable="@android:color/transparent"/>
</selector>
3.在res / drawable下创建red_color.xml / light_gray_color.xml(或任何其他名称)并添加所需的Hex颜色:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#C8FF0000"/>
</shape>
4-打开您的项目AndroidManifest.xml并添加android:theme标签(如果不存在)
<application
android:theme="@style/AppTheme" >