Android底部导航栏组件:BottomNavigationBar

Google终于推出了自己风格的底部导航栏,对于android开发人员来说是一个福音。

废话不多说,先来看一下效果:
Android底部导航栏组件:BottomNavigationBar_第1张图片

怎么样,是不是还行,其实使用起来也非常简单,下面跟着我来做吧!

添加依赖:

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

布局文件:

    <com.ashokvarma.bottomnavigation.BottomNavigationBar
        android:id="@+id/bottom_navbar"
        android:layout_width="match_parent"
        android:layout_height="55dp"
        android:layout_alignParentBottom="true"/>

生成导航栏的每一个item:

 BottomNavigationBar navbar = (BottomNavigationBar) findViewById(R.id.bottom_navbar);
 //生成BottomNavigationBar中的每一个item
        BottomNavigationItem item1 = new BottomNavigationItem(R.mipmap.ic_home,"home");
        BottomNavigationItem item2 = new BottomNavigationItem(R.mipmap.ic_chat,"chat");
        BottomNavigationItem item3 = new BottomNavigationItem(R.mipmap.ic_user,"user");
        //将item添加到BottomNavigationBar中
        navbar.addItem(item1);
        navbar.addItem(item2);
        navbar.addItem(item3);

设置点击、未点击、和背景色:

        //统一设置点击颜色
        navbar.setActiveColor(R.color.colorAccent);
        //统一设置未点击颜色
        navbar.setInActiveColor(R.color.colorWhite);
        //统一设置BottomNavigationBar的背景色
        navbar.setBarBackgroundColor(R.color.colorBlue);

设置BottomNavigationBar的mode和style

        //设置BottomNavigationBar的模式
        navbar.setMode(BottomNavigationBar.MODE_FIXED);
        //设置背景样式
     navbar.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);

这里要说明一下,mode分为MODE_FIXED和MODE_SHIFTING。
MODE_FIXED:常规模式,正常的点击反馈效果;
MODE_SHIFTING:动画模式,点击时会有滑动效果,未选中item只显示icon,不显示文字。

BackgroundStyle分为BACKGROUND_STYLE_STATIC和BACKGROUND_STYLE_RIPPLE。

BACKGROUND_STYLE_STATIC:正常背景样式,在此样式下,setActiveColor是点击时文字颜色,setInActiveColor是未点击时文字颜色,setBarBackgroundColor为背景色;

BACKGROUND_STYLE_RIPPLE:波纹效果,不同的是在此样式下,setActiveColor为背景色,setInActiveColor是未点击时文字颜色,setBarBackgroundColor是点击时文字颜色。
(具体可以看我的demo效果)

生成BottomNavigationBar:

 navbar.initialise();

ok,到这里BottomNavigationBar就乖乖的出现在了屏幕中,下面我来学习一些拓展用法:

设置选中监听:

navbar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
            //item变为选中回调
            @Override
            public void onTabSelected(int position) {

            }
            //item变为未选中回调
            @Override
            public void onTabUnselected(int position) {

            }
            //item再次变为选中回调
            @Override
            public void onTabReselected(int position) {

            }
        });

清空所有item:

navbar.clearAll();

添加一个标记:
效果
Android底部导航栏组件:BottomNavigationBar_第2张图片

/**
     * 获得一个导航图标右上角的标记,例如 未读消息
     *
     * @param borderWidth  边距
     * @param text         内容
     * @param hideOnSelect 点击时是否显示标记
     */
    private BadgeItem initBadge(int borderWidth, String text, boolean hideOnSelect) {
        return new BadgeItem()
                .setBorderWidth(borderWidth)
                .setBackgroundColorResource(R.color.colorAccent)
                .setText(text)
                .setHideOnSelect(hideOnSelect);
    }

让BottomNavigationBar结合fragment使用也是非常方便的,可以参考我的项目,里面可以学到一个app架构的搭建,以及目前最火的各种框架使用场景:https://github.com/18973809797/BaseStorehouse

如果只是单纯想了解BottomNavigationBar,可以看这个demo地址:
https://github.com/18973809797/BottomNavigationBarDemo

你可能感兴趣的:(android)