我正试图为抽屉里的东西创造一个圆角的波纹。但是,我不知道如何做到这一点。我试图创建一个自定义涟漪,并将其分配给NavigationView
到app: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"/>
自定义波纹
<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>
然而,这并不像预期的那样有效。似乎有两种波纹:矩形和圆角波纹,如下图所示。
Output
你知道怎么解决这个问题吗?谢谢
最佳答案
这是我所做的。它为我去除了矩形波纹。试试看,如果有用的话告诉我。
<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"/>
Syel.xml:
<style name="NavigationItemNoRipple">
<item name="android:colorControlHighlight">@android:color/transparent</item>
</style>
关于android - 如何为抽屉菜单项创建带有圆角的波纹?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55737113/