Как создать рябь с закругленными углами для элементов меню ящика? - PullRequest
1 голос
/ 18 апреля 2019

Я пытаюсь создать рябь с закругленными углами для предметов Ящика. Однако я не могу понять, как этого добиться. Я попытался создать пользовательскую рябь и присвоить ее свойству 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"/>

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>

rounded_corner

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/colorAccentTransparent" />
    <corners android:radius="6dp" />
</shape>

Однако это работает не так, как ожидалось. Кажется, что есть две ряби: прямоугольник и рябь с закругленными углами, как вы можете видеть ниже.

Выход

Ты хоть представляешь, как это решить? Спасибо

1 Ответ

1 голос
/ 30 апреля 2019

Вот что я сделал. Это убрало прямоугольную рябь для меня. Попробуйте и дайте мне знать, если это поможет.

<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"/>

styles.xml:

<style name="NavigationItemNoRipple">
    <item name="android:colorControlHighlight">@android:color/transparent</item>
</style>
...