web-dev-qa-db-ja.com

Androidナビゲーションビューメニューの背景を変更

私のアプリでは、ナビゲーションビューメニューの背景を変更したいのですが、これを行う方法がわかりません。私が見たすべての投稿は、各メニュー項目の背景を変更する方法を説明していますが、必要なのはメニューの背景全体を変更することだけです。

これは私が変更したいものです、白い背景全体:

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>

とにかく、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>

前もって感謝します。

14
user3065901

NavigationViewに背景を設定して、以下のように色を変更することができます(app_whiteに設定)&headerには、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" />
40
Ankii Rawat

Android:background="@color/yourColor"<Android.support.design.widget.NavigationViewに追加するだけです。

3
Daniel Santos

上記の方法は非常に簡単です。これよりもはるかに必要な場合は、これに別のレイアウトを含めるだけです。

<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