项目需求,自己实现BottomBar,使用方便简单高效,写的不足之处,希望体谅......但是我觉得好多项目都有,挺实用的
具体实现不好描述,可参考demo,查看源码*
效果图
分析
1.简单的组合控件
2.用代码绘制ColorStateList
3.实现与fragment的关联
使用
1.在项目gradle中添加
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2.添加依赖
{
implementation 'com.github.JadeKkang:BottomBarDemo:v1.0'
}
3.xml中使用
自定义属性
属性 | 值 | 描述 |
---|---|---|
text_select | #0082e0 | 选中字体颜色 |
text_no_select | #999999 | 未选中字体颜色 |
text_size | 14sp | 字体大小 |
circle_color | #ff3c0c | 小圆点颜色 |
circle_size | 20 | 小圆点大小 |
预留方法
1.setRedPoint(int index)设置第几个按钮显示小红点
2.setCancelRedPoint(int index)设置第几个按钮取消小红点
3.setOnItemListener(OnItemListener onItemListener)设置点击回调
说明
1.此控件有两种使用方法,可以和fragment关联,也可以不喝fragment关联,具体如下
1) //关联fragment
bottomBar.init(getSupportFragmentManager(),R.id.fl_mains)
.addItem("首页",R.mipmap.home_true,R.mipmap.home_false,new HomeFragment(),false)
.addItem("圈子",R.mipmap.cirle_true,R.mipmap.cirle_fales,new CircleFragment(),false)
.addItem("主页",R.mipmap.survey_true,R.mipmap.survey_false,new SureyFragment(),false)
.addItem("消息",R.mipmap.msg_true,R.mipmap.msg_false,new MsgFragment(),true)
.addItem("我的",R.mipmap.my_true,R.mipmap.my_false,new MyFragment(),false)
.defaultIndext(1);
2)//不需要关联fragment,只当做按钮用法
bottomBar.addItem("首页",R.mipmap.home_true,R.mipmap.home_false,null,false)
.addItem("圈子",R.mipmap.cirle_true,R.mipmap.cirle_fales,null,false)
.addItem("主页",R.mipmap.survey_true,R.mipmap.survey_false,null,false)
.addItem("消息",R.mipmap.msg_true,R.mipmap.msg_false,null,false)
.addItem("我的",R.mipmap.my_true,R.mipmap.my_false,null,false)
.defaultIndext(1);