我想让我的导航视图的背景是#121212,但它变成了一个更轻的灰色。但是,当应用相同的颜色作为背景时,视图中的项目具有正确的颜色显示。
android:background="@color/navview"
app:itemBackground="@color/navview"
测试项的背景设置为与导航视图背景相同的颜色,但是颜色存在惊人的差异,如下所示。
导航视图背景上是否有过滤器?我试过把背景色调模式设为空,
nvView.backgroundTintMode = null
但似乎没有效果。任何帮助是赞赏!
编辑:
<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:id="@+id/navigation_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/navview"
android:fitsSystemWindows="true">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" />
<com.google.android.material.navigation.NavigationView
android:id="@+id/nvView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/navview"
app:itemBackground="@color/navview"
app:menu="@menu/toolbar_menu">
</com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
我的导航视图的背景颜色不正确,项目的背景颜色正确。我想要的颜色是#121212。
4条答案
按热度按时间lmvvr0a81#
在
NavigationView
中,使用**itemShapeFillColor
**属性填充项目,并使用android:background
作为菜单视图的背景。在布局中:
(我只是在选中的项目上使用alpha来突出显示它)
您也可以使用样式:
关于
itemBackground
的一点说明。在默认样式中,设置为
@null
,以在设置**itemShapeAppearance
和/或itemShapeAppearanceOverlay
时使用由NavigationView
以编程方式生成的形状背景。此背景使用
itemShape*
**属性(如itemShapeFillColor
、itemShapeInsetStart
...)设置样式。设置
itemBackground
将覆盖编程背景,并导致itemShape*
属性中设置的值被忽略。qnzebej02#
您可以使用以下代码片段设置导航视图的背景色
csga3l583#
在我的情况下,被接受的答案并不能解决我所需要的,以及我所理解的问题所要求的:防止NavigationView修改提供的背景颜色。
如果其他人需要这个,我通过向Navigation视图添加以下属性来实现:
这将禁用应用于背景的色调,因为它会将0添加到当前颜色。
monwx1rj4#
另一种解决方法是将DrawerLayout高程设置为0dp
然后,您将获得NavigationView的正确颜色