Выберите элемент в BottomNavigationMenu, рябь, затем измените цвет фона элемента на рифленый цвет? - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть простое BottomNavigationView, и я хочу получить эффект ряби, когда пункты меню в навигационном представлении касаются.Затем я хочу, чтобы фон выбранного пункта меню оставался таким же цветом, что и рябь, пока не будет выбран новый пункт меню.Я получил пульсацию без проблем на всех.Изменение цвета фона элемента меню оказывается довольно трудным делом.

Я вставил xml ниже моего текущего состояния с использованием пульсации.Что бы мне пришлось изменить, чтобы потом сохранить цвет пульсации?

Я пробовал селектор с пульсацией, который меняет цвет фона в зависимости от состояния checked.Это, казалось, сломало всю окраску выбора.Я попытался удалить рябь и иметь только селектор состояния checked.Очевидно, что пульсация исчезла.

в activity_main.xml:

    <com.google.android.material.bottomnavigation.BottomNavigationView
            android:id="@+id/navigation_bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintBottom_toBottomOf="parent"
            app:menu="@menu/bottom_navigation_menu"
            app:labelVisibilityMode="labeled"
            style="@style/BottomNavigation"/>

в styles.xml:

    <style name="BottomNavigation">
        <item name="android:background">@color/colorBottomTabUnselected</item>
        <item name="itemBackground">@drawable/navigation_bar_item_ripple</item>
        <item name="itemIconTint">@color/navigation_bar_txt_color</item>
        <item name="itemTextColor">@color/navigation_bar_txt_color</item>
        <item name="paddingStart">@dimen/bottom_navigation_padding</item>
        <item name="paddingEnd">@dimen/bottom_navigation_padding</item>
    </style>

в navigation_bar_item_ripple.xml:

<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/colorBottomTabSelected">

    <item android:id="@android:id/mask">
        <shape android:shape="rectangle">
            <solid android:color="@color/colorBottomTabSelected"/>
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/colorBottomTabUnselected"/>
        </shape>
    </item>

</ripple>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...