【发布时间】:2019-03-15 13:56:27
【问题描述】:
我正在尝试替换我认为是NavigationView 的默认项目背景。所以我创建了一个drawable来替换背景并使用itemBackground属性应用它。
background_navigation_view_item.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/navigation_item_background_tint">
<item android:id="@android:id/mask" android:top="4dp" android:bottom="4dp" android:left="8dp" android:right="8dp">
<shape android:shape="rectangle">
<solid android:color="@android:color/white"/>
<corners android:radius="3dp"/>
</shape>
</item>
<item android:top="4dp" android:bottom="4dp" android:left="8dp" android:right="8dp">
<selector>
<item android:state_checked="true">
<shape android:shape="rectangle">
<solid android:color="@color/navigation_item_background_tint"/>
<corners android:radius="3dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
<corners android:radius="3dp"/>
</shape>
</item>
</selector>
</item>
</ripple>
当项目被选中时,项目背景可绘制看起来很棒(“选择控件”是下图中的选定项目)。但是,当单击该项目时(下面的“进度指示器”),似乎正在使用默认的波纹可绘制 和 background_navigation_view_item.xml 可绘制(只应显示圆角矩形,而不是矩形围绕它)。
我还测试了可绘制视图作为可检查视图的背景,它的工作方式符合我的预期。因此,如果我的可绘制对象的代码中没有错误,为什么不替换原始背景可绘制对象?
【问题讨论】:
标签: android android-drawable navigation-drawer android-jetpack android-navigationview