在BottomNavigationMenu中选择一个项目,波纹,然后将该项目的背景颜色更改为波纹颜色?

时间:2019-04-25 18:09:00

标签: android kotlin androidx

我有一个简单的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>

0 个答案:

没有答案