引用进项目
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.5'
xml文件中添加进去
<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/bottomnavigationbar"
android:layout_width="match_parent"
android:layout_height="60dp"></com.ashokvarma.bottomnavigation.BottomNavigationBar>
初始化BottomNavigationBar,并配置信息
@BindView(R.id.bottomnavigationbar)
BottomNavigationBar bottomnavigationbar; // 底部导航
// 导航图标集合
int[] barIcons = new int[]{
R.drawable.ic_nav_nearby_active, // 附近
R.drawable.ic_nav_live_active, // 直播
R.drawable.ic_nav_conversation_active, // 会话
R.drawable.ic_nav_contacts_active, // 联系人
R.drawable.ic_nav_personal_active //个人
};
String[] barLabels = getResources().getStringArray(R.array.bottombarlabel); // 导航文字的集合
// 设置底部导航栏的参数
bottomnavigationbar
.setBarBackgroundColor(R.color.bottombarcolor) // 设置底部导航条的背景颜色
.addItem(new BottomNavigationItem(barIcons[0], barLabels[0])) //添加tab
.addItem(new BottomNavigationItem(barIcons[1], barLabels[1]))
.addItem(new BottomNavigationItem(barIcons[2], barLabels[2]).setBadgeItem(badgeItem))
.addItem(new BottomNavigationItem(barIcons[3], barLabels[3]))
.addItem(new BottomNavigationItem(barIcons[4], barLabels[4]))
.setActiveColor(R.color.activecolor) // 设置选中的颜色
.setInActiveColor(R.color.inactivecolor) // 设置未选中的颜色
.setFirstSelectedPosition(0) /// 设置,默认选中的是哪个item
.setMode(BottomNavigationBar.MODE_FIXED) // 设置模式为混合模式
.initialise();// 最后初始化
TextBadgeItem badgeItem = new TextBadgeItem(); // 消息提示小圆点对象
badgeItem.setText("10"); // 设置要显示的文字
badgeItem.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); // 设置居中对齐方式
// badgeItem.show(); // 展示方法
badgeItem.hide(); // 隐藏
// 设置底部导航的切换监听
bottomnavigationbar.setTabSelectedListener(new MyTabSelectedListener());
public class MyTabSelectedListener implements BottomNavigationBar.OnTabSelectedListener {
/**
* 被选中时候调用
*
* @param position
*/
@Override
public void onTabSelected(int position) {
// MyLogger.i("onTabSelected" + position);
//被选中后要切换fragment
// 1.通过FragmentManager获取Fragment
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(position + "");
FragmentTransaction ft = fm.beginTransaction();
// 2.如果不存在就通过FragmentFactory创建
if (fragment == null) {
// fragment是空,添加进去
ft.add(R.id.contaier, FragemntFactory.getInstance(fragments[position]), position + "");
} else {
// 3.如果存在就直接显示
ft.show(fragment);
}
ft.commit();
}
/**
* 未被选中时候调用
*
* @param position
*/
@Override
public void onTabUnselected(int position) {
MyLogger.i("onTabUnselected" + position);
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentByTag(position + "");
FragmentTransaction ft = fm.beginTransaction();
ft.hide(fragment);
ft.commit();
}
@Override
public void onTabReselected(int position) {
MyLogger.i("onTabReselecteds" + position);
}
}