1.添加依赖
implementation 'com.google.android.material:material:1.0.0'
2.在布局中使用
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigationView"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@color/white"
app:itemBackground="@null"
app:itemTextColor="@drawable/sl_tab_color"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:menu="@menu/navigation_item" />
. 其中android:icon="@drawable/sl_tab_main_system"为设置按钮选中与未选中时的图标选择
. 其中app:itemTextColor="@drawable/sl_tab_color"为设置按钮选中与未选中时字体的颜色选择。navigation_item.xml文件为:
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_main"
android:icon="@drawable/sl_tab_main_main"
android:title="@string/menu_main"/>
<item
android:id="@+id/menu_project"
android:icon="@drawable/sl_tab_main_project"
android:title="@string/menu_project"/>
<item
android:id="@+id/menu_wechat"
android:icon="@drawable/sl_tab_main_wechat"
android:title="@string/menu_wechat"/>
<item
android:id="@+id/menu_system"
android:icon="@drawable/sl_tab_main_system"
android:title="@string/menu_system"/>
</menu>
3.Activity内使用
BottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()){
case R.id.navigation_home:
break;
case R.id.navigation_dashboard:
break;
}
return true;
}
});
4.最新版BottomNavigationView 3个以上图标不显示文字解决方法:
方法一:BottomNavigationView.setLabelVisibilityMode(1);
方法二:
BottomNavigationViewHelper.removeNavigationShiftMode(BottomNavigationView);
public static class BottomNavigationViewHelper {
@SuppressLint("RestrictedApi")
public static void removeNavigationShiftMode(BottomNavigationView view) {
BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0);
menuView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED);
menuView.buildMenuView();
}
}