BottomNavigationView实现底部导航栏
1. 引入方法
implementation 'com.android.support:design:26.+'
2. 常见的属性
XML attributes | 用法 Cool |
---|---|
itemBackground | 底部导航栏的背景颜色 |
itemIconTint | 图标==选中==/==未选中==渲染的颜色 |
itemTextColor | 文字==选中==/==未选中==的颜色 |
3. 两种效果:改变图标的渲染颜色和替换不同的图标
- 只改变图标的渲染颜色
具体设置如下图:
selecter_color配置如下图 :
在这里我们设置了图标和文字在未选中和选中状态下渲染的颜色。尽管我们在@menu/navigation中的item设置的图片的颜色是蓝色(选中)、白色(未选中)的,如下图:
但是在演示的时候,所有的图标都会被渲染成红色,如下图:
明明是想显示UI姐姐做的图片,就变成这样,显然有点坑!
只能找api文档中,有个方法==ItemIconTintList==,没错就是他,可以让我们脱坑!具体看下面 ↓ ↓ ↓ ↓
- 替换为UI提供的图片配色
我们需要在代码中加入如下图中的代码
就可以结局上面的问题,显示效果如下图:
4. BottomNavigationView和viewpager实现一套完整的
下载地址如下
5.凸出来的菜单效果
一直想找个凸出来的效果,奈何百度不到,还是去使用别人写好的自定义的控件吧。比如:
6.设置通知的红点
类似于QQ中的消息的红点通知,使用第三方库 BadgeView
由于BadgeView需要设置红点得时候绑定控件view。
可以通过:
BottomNavicationView bottomNavicationView=findViewById(R.id.bottom_xml);
bottomNavicationView.findViewById(R.id.menu中设置的item的id)
获取控件view。完整的demo地址如下:
以上就是我的总结和理解,个人认为还是看源码,只有阅读理解能力强大了,才能尝试去随心所欲的改写,那种感觉一直渴望但是触摸不到,努力 吧!