2015-10-15 16 views
10

W mojej aplikacji chcę zmienić tło menu widoku nawigacji, ale nie wiem, jak to zrobić. Wszystkie obserwowane przeze mnie posty wyjaśniają, jak zmienić tło każdego elementu menu, ale wszystko, czego potrzebuję, to zmienić całe tło menu.Android Zmień menu nawigacji Widok tła

To jest to, co chcę zmienić, całą białym tle:

enter image description here

activity_main_drawer.xml:

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

<group android:checkableBehavior="single"> 
    <item android:id="@+id/nav_camara" android:icon="@android:drawable/ic_menu_camera" 
     android:title="Import" /> 
    <item android:id="@+id/nav_gallery" android:icon="@android:drawable/ic_menu_gallery" 
     android:title="Gallery" /> 
    <item android:id="@+id/nav_slideshow" android:icon="@android:drawable/ic_menu_slideshow" 
     android:title="Slideshow" /> 
    <item android:id="@+id/nav_manage" android:icon="@android:drawable/ic_menu_manage" 
     android:title="Tools" /> 
</group> 

<item android:title="Communicate"> 
    <menu> 
     <item android:id="@+id/nav_share" android:icon="@android:drawable/ic_menu_share" 
      android:title="Share" /> 
     <item android:id="@+id/nav_send" android:icon="@android:drawable/ic_menu_send" 
      android:title="Send" /> 
    </menu> 
</item> 

</menu> 

Czy mimo to zmienić białe tło z układu activity_main_drawer?

activity_main.xml:

<?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" 
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout" 
android:layout_width="match_parent" android:layout_height="match_parent" 
android:fitsSystemWindows="true" tools:openDrawer="start"> 

<include layout="@layout/app_bar_main" android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<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" 
    app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

góry dzięki.

Odpowiedz

34

Można ustawić tło do NavigationView zmienić jego kolor jak poniżej (zestaw do app_white) & dla nagłówka ustawić dowolny kolor jako tło drawer_header_layout.

<android.support.design.widget.NavigationView 
     android:id="@+id/adcl_navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="@color/app_white" 
     app:headerLayout="@layout/drawer_header_layout" 
     app:itemIconTint="@color/app_secondary_text" 
     app:itemTextColor="@color/app_secondary_text" 
     app:menu="@menu/menu_drawer" 
     app:theme="@style/ThemeOverlay.AppCompat.Light" /> 
+0

Dziękuję. Działa idealnie. – user3065901

+0

, ale potrzebuję tła obrazu, jeśli tak ustawię, jego nakładanie się przez nagłówek – NarendraJi

2

Powyższa metoda jest tak łatwa, jeśli chcesz o wiele więcej, wystarczy dołączyć osobny układ.

<android.support.design.widget.NavigationView 
    android:id="@+id/navigation" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true"> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:background="#ffffff"/> 
     <ListView 
      android:id="@+id/lst_menu_items" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:background="#ffffff" 
      android:layout_weight="1" /> 

</android.support.design.widget.NavigationView> 
2

wystarczy dodać android:background="@color/yourColor" do <android.support.design.widget.NavigationView.

Powiązane problemy