在Android中设置导航抽屉的背景颜色

时间:2021-02-17 08:58:50

标签: android navigation-drawer

我正在尝试设置导航栏的背景颜色。我尝试了所有方法,但没有一种方法有效。我还发现了类似的帖子并应用了这些更改。

我的 XML 文件

<com.google.android.material.navigation.NavigationView
       android:id="@+id/viewnav"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:layout_gravity="start"
       android:background="#FFFFFF"
       android:theme="@style/navigationTheme"
       app:headerLayout="@layout/menu_header"
       app:elevation="2dp"
       app:itemTextColor="@color/md_blue_100"
       app:menu="@menu/main_menu" />

我也尝试过设置 style.xml

<style name="navigationTheme" parent="Widget.MaterialComponents.NavigationView" >

        <item name="colorPrimary">
            @color/md_purple_500
        </item>

        <item name="colorControlHighlight">
            @color/md_white_1000
        </item>

        <item name="android:background">
            @color/md_white_1000
        </item>

    </style>

知道如何更改颜色吗?

即使在应用了建议的更改后,它仍然如下所示。 enter image description here

我的 Activity.xml 是:

<androidx.drawerlayout.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:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start"
    tools:context=".Home"
    android:id="@+id/drwnav">


   <com.google.android.material.navigation.NavigationView
       android:id="@+id/viewnav"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:layout_gravity="start"
       android:background="@drawable/navigation_background"
       android:theme="@style/navigationTheme"
       app:elevation="2dp"
       app:headerLayout="@layout/menu_header"
       app:itemTextColor="@color/md_blue_100"
       app:menu="@menu/main_menu" />


   <LinearLayout..... some other content

 </LinearLayout>

</androidx.drawerlayout.widget.DrawerLayout>

3 个答案:

答案 0 :(得分:1)

app:headerLayout="@layout/menu_header"

@layout/menu_header 背景颜色更改为 @android:color/transparent。或更改您想要的颜色@layout/menu_header

答案 1 :(得分:0)

创建一个新的空可绘制文件并将其命名为“navigation_background”,然后 将此代码粘贴到其中:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp"
android:shape="rectangle">
<gradient
    android:endColor="#FFFF"
    android:startColor="#FFFF"
    android:type="linear" />
<corners
    android:bottomRightRadius="15dp"
    android:topRightRadius="15dp" />

然后在您的 activity_main.xml 中:

   <com.google.android.material.navigation.NavigationView
   android:id="@+id/viewnav"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:layout_gravity="start"
   android:background="@drawable/navigation_background"
   android:theme="@style/navigationTheme"
   app:headerLayout="@layout/menu_header"
   app:elevation="2dp"
   app:itemTextColor="@color/md_blue_100"
   app:menu="@menu/main_menu" />

答案 2 :(得分:0)

解决了。这是我正在应用的移动暗模式设置。

相关问题