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