ButtomNavigationView在项目背景中不显示波纹效果

时间:2019-06-17 00:19:15

标签: android

更新:

另一个问题使用白色背景,由于它使用白色背景,因此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:

https://firebasestorage.googleapis.com/v0/b/library-1696f.appspot.com/o/Screenshot%20from%202019-06-17%2005-39-23.png?alt=media&token=20efbe56-3234-47ab-b6cc-898124b77762

1 个答案:

答案 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>

Image