android - 如何为抽屉菜单项创建带圆角的波纹?
问题描述
我正在尝试为抽屉项目创建一个带有圆角的波纹。但是,我无法弄清楚如何实现这一目标。我尝试创建一个自定义波纹并将其分配给NavigationView
throughapp:itemBackground
属性,如下所示:
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation_view"
style="@style/Widget.MaterialComponents.NavigationView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/menu_navigation"
app:itemBackground="@drawable/custom_ripple"/>
custom_ripple
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?android:attr/colorControlHighlight">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#000000" />
<corners android:radius="15dp" />
</shape>
</item>
<item android:drawable="@drawable/rounded_corner" />
</ripple>
圆角
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorAccentTransparent" />
<corners android:radius="6dp" />
</shape>
但是,这并没有按预期工作。似乎有两个波纹:一个矩形和一个圆角波纹,如下所示。
你知道如何解决这个问题吗?谢谢
解决方案
这就是我所做的。它为我消除了矩形波纹。试一试,让我知道它是否有帮助。
<com.google.android.material.navigation.NavigationView
android:id="@+id/navigation_view"
android:theme="@style/NavigationItemNoRipple"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:menu="@menu/menu_navigation"
app:itemBackground="@drawable/custom_ripple"/>
样式.xml:
<style name="NavigationItemNoRipple">
<item name="android:colorControlHighlight">@android:color/transparent</item>
</style>
推荐阅读
- openstack - 如何登录部署在 Openstack 基础架构上的 ubuntu-cloud 实例
- sql - 如何从 Oracle LISTAGG 聚合查询的结果中消除重复值
- windows - CIS中“No One”的定义是什么,Windows系统的SID选择
- python - Tkinter + matplot 动画填充内存
- javascript - 如何使用node.js在mongodb中获取按组名分组的聚合值?
- spring - 在服务器中使用 Spring @scheduled
- javascript - 我的 req.on('end') 没有触发。如何解决这个问题?
- c# - 如何从 Excel 工作簿 C# 的内存流中访问 Date Last Saved 属性
- azure-resource-manager - 是否可以使用新的 lb 规则或使用 arm 模板的运行状况探测来更新现有的 azure 负载均衡器
- php - 有没有办法将未选择的数据直接发送到控制器?