【发布时间】:2018-12-01 20:04:06
【问题描述】:
我在布局中使用app:itemBackground 设置导航项背景:
<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:itemBackground="@drawable/nav_selector_background"
app:headerLayout="@layout/nav_header_main"
app:menu="@menu/activity_main_drawer"/>
这里是nav_selector_background.xml
<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/colorNavItemSelected">
<item android:id="@android:id/mask">
<color android:color="#000"/> <!-- any color will do -->
</item>
<item
android:right="8dp">
<selector>
<item android:state_pressed="true" android:drawable="@drawable/nav_item_background_round"/>
<item android:state_focused="true" android:drawable="@drawable/nav_item_background_round"/>
<item android:state_checked="true" android:drawable="@drawable/nav_item_background_round"/>
<item android:state_activated="true" android:drawable="@drawable/nav_item_background_round"/>
<item android:state_active="true" android:drawable="@drawable/nav_item_background_round" />
<item android:state_hovered="true" android:drawable="@drawable/nav_item_background_round" />
<item android:state_drag_hovered="true" android:drawable="@drawable/nav_item_background_round" />
<item android:drawable="@android:color/transparent"/>
</selector>
</item>
还有nav_item_background_round:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/colorNavItemSelected"/>
<corners android:bottomRightRadius="32dp"
android:topRightRadius="32dp"/>
</shape>
</item>
</layer-list>
问题是当我按下项目时,整个背景都会突出显示,如屏幕截图所示。我只想突出显示红色部分。
如果有人对编译和运行应用程序感兴趣,我将示例上传到 Github。
【问题讨论】:
标签: android android-layout android-navigationview material-components material-components-android