如何以编程方式在 Android 中设置 Nav Drawer 的背景颜色

How to programatically set background color of Nav Drawer in Android

我正在创建一个应用程序,让您几乎可以更改 UI 任何部分(任何按钮、背景等)的颜色。导航抽屉目前只有三种状态可以切换:浅色、深色或黑色。我通过使用三个独立的相同 activity_main 布局实现了这一点,它们的唯一区别是 XML 中导航抽屉的背景颜色。它只是根据用户在应用程序设置中选择的主题在 setContentView 中加载适当的布局。

但是,考虑到用户可以将他们的应用程序的背景颜色设置为他们想要的任何颜色这一事实,当他们的背景是浅蓝色阴影而导航抽屉是亮白色时,这有点刺耳.我想有一种方法可以在 Java 中以编程方式设置抽屉的背景,这样我就可以将其设置为用户的任何背景颜色,或者 lighter/darker 阴影等。

我的项目的最低 API 级别是 21,它的目标是 API 30。我已经查看了所有我能找到的关于导航抽屉中包含的方法的文档 class, 但我找不到任何东西来实现这一目标。

澄清一下,该项目完全在 Java 中,因此我可能无法理解 Kotlin 中的任何答案。但是,任何帮助表示赞赏!提前感谢您提供任何信息。

我知道是 Kotlin 但方法应该是一样的:

val navigationView = findViewById(R.id.nav_view)
navigationView.setBackgroundColor(Color.RED) // use your color here

和xml:

    <com.google.android.material.navigation.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"/>