这篇文章主要介绍了Android使用BottomNavigationBar实现导航栏功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
基本属性
setActiveColor //选中item的字体颜色
setInActiveColor //未选中Item中的颜色
setBarBackgroundColor//背景颜色
setMode(BottomNavigationBar.MODE_FIXED) //填充模式,未选中的Item会显示文字,没有换挡动画
setMode(BottomNavigationBar.MODE_SHIFTING) //换挡模式,未选中的Item不会显示文字,选中的会显示文字
setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC) //点击的时候没有水波纹效果
setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_RIPPLE) //点击的时候有水波纹效果,也就是导航条的背景色是你设置的处于选中状态的 Item的颜色
addItem(new BottomNavigationItem(R.mipmap.ic_launcher_round, mTitles[0]) //添加一个BottomNavigationItem子项,设置图标和文字
setInactiveIcon(ContextCompat.getDrawable(this, R.mipmap.ic_launcher)) //添加选中时的变更图标
setFirstSelectedPosition(0) //默认选中下标为0的item
setBadgeItem() //添加BadgeItem标记
initialise() //绘制,要放在设置最后
setTabSelectedListener监听器
bottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
@Override
public void onTabSelected(int position) {
//获得选中状态时触发,可以做fragmengt页面切换
Toast.makeText(MainActivity.this,"当前选中"+position,Toast.LENGTH_SHORT).show();
}
@Override
public void onTabUnselected(int position) {
//当失去焦点不被选中的时候触发
Toast.makeText(MainActivity.this,position+"失去了焦点",Toast.LENGTH_SHORT).show();
}
@Override
public void onTabReselected(int position) {
//触发不了,我也母鸡
}
});
BadgeItem标记
1.五角星标记
mShapeBadgeItem = new ShapeBadgeItem()
.setShapeColorResource(R.color.colorPrimary) //背景颜色
.setGravity(Gravity.TOP ) //位置 默认右上
.setAnimationDuration(200)//动画时长
.setHideOnSelect(false)//true当选中状态时消失,非选中状态再次显示
.show();
hide() //隐藏
2.文本标记
mTextBadgeItem = new TextBadgeItem()
.setBorderWidth(4)//文本大小
.setGravity(Gravity.TOP )//位置 默认右上
.setBackgroundColorResource(R.color.colorAccent)//背景颜色
.setAnimationDuration(200)//动画时间
.setText("3")
.setHideOnSelect(false)//true当选中状态时消失,非选中状态再次显示
.show();
官方all.gif
view源码下载地址
总结
以上所述是小编给大家介绍的Android BottomNavigationBar导航栏功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程学习网网站的支持!
沃梦达教程
本文标题为:Android使用BottomNavigationBar实现导航栏功能
基础教程推荐
猜你喜欢
- iOS开发 全机型适配解决方法 2023-01-14
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- Android Compose自定义TextField实现自定义的输入框 2023-05-13
- IOS获取系统相册中照片的示例代码 2023-01-03
- Android实现短信验证码输入框 2023-04-29
- iOS开发使用XML解析网络数据 2022-11-12
- Android开发Compose集成高德地图实例 2023-06-15
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Flutter进阶之实现动画效果(三) 2022-10-28