2015-07-04 18 views
21

benim öğesi Navigasyon Görünüm menüsünden rengini değiştirmeyi deneyin:Android - Navigasyon Görünümü öğesi menü arka plan rengi

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> 

çekmece. 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> 
[...] 

Arka plan rengi değişmiyor .. Neyi yanlış yapıyorum?

cevap

20

styles.xml dosyanızdaki bir Gezinme Görünümü öğesinin arka planı için çizilebilir ayarlamazsınız. Gezinme Görünüm widget'ı içeren XML düzeni dosyasını açın ve küçük aracının özelliklerine aşağıdaki satırı ekleyin: Eğer "app" işaretçi ile sorun yaşıyorsanız

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

yanı aşağıdaki satırı ekleyin:

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

Bunun yalnızca seçilen liste öğesinin arka planının rengini değiştirdiğini unutmayın. Simge ve metin renginin de değiştirilmesini isterseniz, bunun yerine app:itemTextColor özniteliğini kullanın. @HaloMediaz ve @HemantShori seçilmiş durumda seçilen öğenin arka planını tutmak için

+0

sayesinde bu iş. Bu yüzden, styles.xml dosyasındaki çizgi kaldırılabilir. –

+0

bu işe yarar, ancak kontrol durumu için seçici –

+2

Nice çözümü için çalışmıyor. Arka planı seçili durumda tutmanın herhangi bir yolu var mı? – HaloMediaz

2

,

kullanım android: yerine android = "true" state_checked: Renk devlet kaynakta = "true" state_pressed.

Yani aktive renk durumları kaynak aşağıdaki gibi görünmelidir:

activated_background.xml

Kodun altında
<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> 
+1

cevabınız benim için doğruydu, ancak kopyaladığınız zaman kodlara bakın, state_pressed durumuna getirmediniz state_checked – tarasmorskyi

12

için çalışıyor bana
benim nav görünümü:

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true" 
    android:background="@color/nav.background" 
    app:menu="@menu/menu_drawer" 
    app:itemBackground="@drawable/nav_item_background" 
    app:itemTextColor="@drawable/nav_item_text"/> 

çekilebilir/nav_item_background.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@color/nav.item.background" /> 
    <item android:state_checked="true" android:drawable="@color/nav.item.background" /> 
    <item android:state_focused="true" android:drawable="@color/nav.item.background" /> 
    <item android:state_activated="true" android:drawable="@color/nav.item.background" /> 
    <item android:drawable="@color/nav.item.background.default" /> 
</selector> 

çekilebilir/nav_item_text.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:color="@android:color/white" android:state_checked="true" /> 
    <item android:color="#bdbdbd" /> 
</selector> 
+0

Detaylı çözüm için teşekkürler. – Khan

+0

Ana Menü öğesinin arka plan rengini değiştirir, peki ya çocuk? – VVB

4

Sen android kullanmalıdır: navigasyon menüsü gibi arka renk için arka plan = "renk": itemTextColor kullanmak

<android.support.design.widget.NavigationView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:id="@+id/shitstuff" 
     app:itemTextColor="@color/black" 
     app:menu="@menu/drawermenu" 
     android:background="@color/colorAccent" 
     android:layout_marginTop="-24dp" 
     /> 

ve ürün renk için =" renk "

0

Seçili ürünlerde arka plan görüntüsünü göstermek için gereken

Menünüzün her bir öğesinde,

.Daha sonra belirlenen xml öğeleri: nihayet

app:itemBackground="@drawable/nav_view_item_background" 
sizin NavigationView üzerinde

ve:

çekilebilir/nav_view_item_background.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/primary" android:state_checked="true" /> 
    <item android:drawable="@android:color/transparent" /> 
</selector>