更新:
另一个问题使用白色背景,由于它使用白色背景,因此BottomNavigationBar上没有波纹(因为波纹本身是白色的)。但是在我的情况下,ButtomNavigationBar是蓝色的,它反映了波纹。实际上,除白色(其他问题使用的颜色)以外的所有颜色都反映出不完整的波纹。
原始:
我正在使用ButtomNavigationView,问题是它在Items的背景中没有显示出波纹效果。
或者它不在乎 app:itemBackground ,它只使用 android:background 值而没有任何涟漪效应。
我尝试在drawable-21中使用 ripple 代替 selector 并更改 app:itemBackground 颜色值,但不是工作。
ButtomNavigationView:
<android.support.design.widget.BottomNavigationView
android:id="@+id/nav_view"
android:layout_width="0dp"
android:layout_height="56dp"
android:theme="@style/BottomNavigationStyle"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/bottom_nav_menu" />
ButtomNavigationStyle:
<style name="BottomNavigationStyle">
<item name="itemBackground">@drawable/navigation_bar_item_bg</item>
<item name="itemIconTint">?attr/bottom_nav_colors</item>
<item name="itemTextColor">?attr/bottom_nav_colors</item>
<item name="android:background">?attr/colorPrimary</item>
<item name="android:fontFamily">@font/iransans_mobile</item>
</style>
bottom_nav_menu:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/navigation_mylibrary"
android:icon="@drawable/ic_library_books_black_24dp"
android:title="@string/title_mylibrary" />
<item
android:id="@+id/navigation_search"
android:icon="@drawable/ic_search_black_24dp"
android:title="@string/title_search" />
.
.
.
</menu>
navigation_bar_item_bg:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/black_color"
android:state_checked="true"/>
<item android:drawable="@drawable/black_color"/>
</selector>
ScreenShot:
答案 0 :(得分:0)
我搜索了一下,发现它是一个尚未修复的库错误。
但是我已经找到了解决方案。
1)由于 android:background 和 android:itemBackground 无法正常工作,因此从BottomNavigationView中将它们都删除了。
2)创建一个新的 FrameLayout 并将您的 BottomNavigationView 放在 FrameLayout 中。
3)更改FrameLayout的这些属性:
android:layout_width="match_parent"
android:layout_height="wrap_content"
4)最后,将您的ButtomNavigationView所需的颜色作为 android:background 添加到FrameLayout中。
示例:
<FrameLayout
android:id="@+id/buttomnavigation_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue"><!--Background color for BNV-->
<android.support.design.widget.BottomNavigationView
android:id="@+id/nav_view"
android:layout_width="match_parent"
android:layout_height="56dp"
app:itemIconTint="@color/bottom_navigation_colors"
app:itemTextColor="@color/bottom_navigation_colors"
app:labelVisibilityMode="labeled"
app:menu="@menu/bottom_nav_menu"/>
</FrameLayout>
bottom_navigation_colors.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="true"
android:color="#FFFFFF" />
<item
android:state_checked="false"
android:color="#C7FFFFFF" />
</selector>