资源文件
BottomNavigationView
<com.google.android.material.bottomnavigation.BottomNavigationView
android:layout_width="match_parent"
android:layout_height="50dp"
app:labelVisibilityMode="labeled"
app:itemRippleColor="@color/colorless"
app:itemIconSize="22dp"
app:menu="@menu/main_nav_menu" />
labelVisibilityMode:文字显示模式
- labeled:所有图标下的文字可见
- unlabeled:所有图标下的文字都不可见
- selected:只显示选定图标的对应文字
- auto:3个及以下图标,效果相当于labeled,多于3个,则为selected
itemRippleColor:底部按键点击时有波纹效果,此处将其改为自定义的颜色
fragment
<fragment
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:defaultNavHost="true"
app:navGraph="@navigation/main_bottom_navigation" />
defaultNavHost:和返回键相关
- true -> 在非首页按返回键,返回首页
- false -> 在非首页按返回键,退出程序
逻辑代码(kotlin)
private fun initNav() {
val navController = findNavController(R.id.nav_host_fragment)
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.nav_record, R.id.nav_timer, R.id.nav_todo_list, R.id.nav_user_manager
)
)
setupActionBarWithNavController(navController, appBarConfiguration) //顶部标题栏
bind.navBottom.setupWithNavController(navController) //绑定底部按钮与页面
bind.navBottom.itemIconTintList = null //去掉默认的图标颜色
}
角标和动态显隐
关于BottomNavigationView的使用姿势都在这里了_G的博客-CSDN博客_bottomnavigationview