前言:
BottomNavigationBar 是Google官方提供的用以实现底部菜单的控件,使用简单,项目里面也一直在用,想想还是记录下来。
一:实现步骤:
1:添加依赖:
compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.0'
2:布局:
<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/bottom_navigation_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:bnbAutoHideEnabled="false"
app:bnbBackgroundColor="@android:color/black"></com.ashokvarma.bottomnavigation.BottomNavigationBar>
3:activity中代码:
bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
bottomNavigationBar
.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC
);
bottomNavigationBar
.addItem(new BottomNavigationItem(R.mipmap.ic_home, "首页").setActiveColorResource(R.color.car_model_checked))
.addItem(new BottomNavigationItem(R.mipmap.ic_find, "找车").setActiveColorResource(R.color.car_model_checked))
.addItem(new BottomNavigationItem(R.mipmap.ic_youhui, "优惠").setActiveColorResource(R.color.car_model_checked))
.addItem(new BottomNavigationItem(R.mipmap.ic_forum, "论坛").setActiveColorResource(R.color.car_model_checked))
.addItem(new BottomNavigationItem(R.mipmap.ic_mine, "我的").setActiveColorResource(R.color.car_model_checked))
.setFirstSelectedPosition(0)
.initialise();
bottomNavigationBar.setTabSelectedListener(this);
4:当然如果你要做消息通知的话,类似于微信有消息来了会有消息数目通知,不用担心,这点谷歌给你想好了,只需要添加BadgeItem,具体使用如下:
BadgeItem numberBadgeItem = new BadgeItem()
//.setBorderWidth(2)//通知框的边框大小
.setBackgroundColor(Color.RED)//通知的背景色
.setText("5")
.setHideOnSelect(false);//选中时显示,这个可自动调整
5:当然,不仅仅是上面的这些方法,比如设置字体等等,上面添加一个方法就ok
.addItem(new BottomNavigationItem(R.mipmap.ic_home, "首页").setActiveColorResource(R.color.car_model_checked).setBadgeItem(
numberBadgeItem ))
6:关于样式和格式可以自行设置:
bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
7:需要实现 BottomNavigationBar.OnTabSelectedListener接口,重写三个方法:
@Override
public void onTabSelected(int position) {
//一般都是联合fragment一起使用,在此调用方法即可
//setFragment(position);
}
@Override
public void onTabUnselected(int position) {
setToolbar(position, false);
}
@Override
public void onTabReselected(int position) {
}
private void setFragment(int index) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
switch (index) {
case INDEX_HOME:
HomeFragment homeFragment = HomeFragment.newInstance();
transaction.replace(R.id.panel, homeFragment);
break;
case INDEX_FIND:
break;
case INDEX_FORUM:
break;
case INDEX_COCESSION:
break;
case INDEX_USER:
break;
}
transaction.commitAllowingStateLoss();
}
------------------------就是这么简单,赶快试试吧,不喜勿喷、