2017-05-31 146 views
0

我已經創建了一個帶有菜單的導航抽屜佈局。我想改變背景,但似乎我不能這樣做。我已經試過這裏給出,例如創建可繪製nav_bg.xml解決方案:如何更改android導航抽屜的菜單背景

<?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:

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

但是當我運行的應用程序,它只是告訴我@ color/grey_55顏色,當我按下它時它不會改變。

+0

何處以及如何到底有沒有可以用這個方法繪製? – azizbekian

+0

所以你真正想知道的是,如何爲所選/活動菜單項設置不同的背景顏色? – Ridcully

+0

請檢查我的答案,並詢問我是否有任何疑問 –

回答

0

最簡單的方法

創建繪製讓利的.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> 

託運物品背景表示創建第二繪製讓說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> 

現在向您的NavigationView佈局添加應用:itemBackground =「@ drawable/nav_checked_item_selector」。

+0

我試過了,它不起作用 – VincentTheonardo

+0

請您將@ color/black_text和@ color/grey_55和NavigationLayout代碼在你的XML,所以我得到一些提示? – Abhishek

+0

我試圖重新創建我的顏色xml到像你的可繪製的XML,現在它的工作。謝謝!! – VincentTheonardo

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 /可繪製文件夾中創建** 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/draw下能夠創建red_color.xml/light_gray_color.xml(或任何其他名稱),並添加你想要的十六進制顏色:

<?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:主題標籤(如果不存在)

<application 
android:theme="@style/AppTheme" > 
+0

不適合搭配:( – VincentTheonardo

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>