引用依赖库
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);
}