底部菜单 BottomNavigationBar 的使用

BottomNavigationBar 是Google官方提供的用以实现底部菜单的控件,使用简单,项目里面也一直在用,想想还是记录下来。

首先添加依赖:

compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.0'

布局:

<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>

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);

当然如果你要做消息通知的话,类似于微信有消息来了会有消息数目通知,不用担心,这点谷歌给你想好了,只需要添加BadgeItem,具体使用如下:

BadgeItem numberBadgeItem = new BadgeItem()
        //.setBorderWidth(2)//通知框的边框大小
        .setBackgroundColor(Color.RED)//通知的背景色
        .setText("5")
        .setHideOnSelect(false);//选中时显示,这个可自动调整
当然,不仅仅是上面的这些方法,比如设置字体等等,

上面添加一个方法就ok

.addItem(new BottomNavigationItem(R.mipmap.ic_home, "首页").setActiveColorResource(R.color.car_model_checked).setBadgeItem(
numberBadgeItem ))


关于样式和格式可以自行设置:

   bottomNavigationBar.setMode(BottomNavigationBar.MODE_FIXED);
   bottomNavigationBar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);


需要实现 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();
}

就是这么简单,赶快试试吧

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值