Bootstrap

BottomNavigationView底部导航去除缩放动画以及点击水波纹动画

引用依赖库

implementation "com.google.android.material:material:1.2.0-beta01"

底部导航去除缩放动画

做法:给BottomNavigationView添加属性labelVisibilityMode

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        style="@style/Widget.MaterialComponents.BottomNavigationView"
        app:menu="@menu/bottom_nav_menu"
        app:labelVisibilityMode="labeled"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

去除item点击水波纹动画

做法一:给BottomNavigationView添加属性itemRippleColor

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        style="@style/Widget.MaterialComponents.BottomNavigationView"
        app:menu="@menu/bottom_nav_menu"
        app:itemRippleColor="@null"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

设置itemRippleColor@null,或者设置itemRippleColor@color/white

做法二:设置app:itemBackground="@color/white"

可以看到源码里面,走if时,设置app:itemBackground="@color/white",就是设置跟背景色一样;走else,则设置itemRippleColor@null,或者也设置跟背景色一样。

    if (itemBackground != 0) {
      menuView.setItemBackgroundRes(itemBackground);
    } else {
      ColorStateList itemRippleColor =
          MaterialResources.getColorStateList(
              context, a, R.styleable.BottomNavigationView_itemRippleColor);
      setItemRippleColor(itemRippleColor);
    }
;