web-dev-qa-db-fra.com

Android Modifier l'arrière-plan du menu d'affichage de la navigation

Dans mon application, je veux changer l'arrière-plan du menu d'affichage de navigation, mais je ne sais pas comment faire. Tous les messages que j'ai regardés expliquent comment changer l'arrière-plan de chaque élément de menu, mais tout ce dont j'ai besoin est de changer l'arrière-plan entier du menu.

C'est ce que je veux changer, tout le fond blanc:

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>

Est-il possible de changer le fond blanc de la disposition 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>

Merci d'avance.

14
user3065901

Vous pouvez définir l'arrière-plan sur votre NavigationView pour changer sa couleur comme ci-dessous (défini sur app_white) et pour l'en-tête, définissez n'importe quelle couleur comme arrière-plan de tiroir_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" />
40
Ankii Rawat

ajoutez simplement Android:background="@color/yourColor" à la <Android.support.design.widget.NavigationView.

3
Daniel Santos

La méthode ci-dessus est si facile, si vous voulez bien plus que cela, incluez simplement une mise en page distincte dans cela.

<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
Raja Jawahar