前言
注意这个里介绍的是AndroidX的com.google.android.material.bottomnavigation.BottomNavigationView
xml布局中
app:labelVisibilityMode="labeled" 标签显示模式,其实就是改变点选后的整体动画,推荐选中labeled,默认的太恶心了超过3个item就会出现超丑的动画
app:itemTextColor="@color/fontBlack1" item文本的颜色
app:itemTextAppearanceActive="@style/Active" 设置选中后的item效果
app:itemTextAppearanceInactive="@style/Inactive" 设置未选中的item效果
style
@dimen/font_size_17
@dimen/font_size_11
只是改变文字大小
menu
图标被Tint颜色覆盖
图标添加后你会发现图标会被Tint颜色覆盖变成灰色的图标,下面这两行代码解决这个问题
mBottomNavigationView =findViewById(R.id.bottom_navigation_view);
mBottomNavigationView.setItemIconTintList(null);
如果你需要改变选中图标
在menu的item上调用
两个点击监听
mBottomNavigationView.setOnNavigationItemSelectedListener(newBottomNavigationView.OnNavigationItemSelectedListener() {
@Overridepublic booleanonNavigationItemSelected(@NonNull MenuItem menuItem) {
Log.e("ytzn", "onNavigationItemSelected: 选中"+menuItem.getItemId() );return true;
}
});
mBottomNavigationView.setOnNavigationItemReselectedListener(newBottomNavigationView.OnNavigationItemReselectedListener() {
@Overridepublic voidonNavigationItemReselected(@NonNull MenuItem menuItem) {
Log.e("ytzn", "onNavigationItemSelected: 选中状态再次选中"+menuItem.getItemId() );
}
});
setOnNavigationItemSelectedListener 是点击未选择的item后的回调,返回的boolean是决定是否启用选中效果或者放大效果
setOnNavigationItemReselectedListener 是如果已经是选中状态后,在点击一次后的回调
end
原文:https://www.cnblogs.com/guanxinjing/p/11027145.html