Android Support 包 BottomNavigationView 的使用

1,175 阅读1分钟
原文链接: blog.devwiki.net

前几天Google官方更新了Support25.0.0,其中包含了 BottomNavigationView 即底部导航栏组件,如下图所示:

下面我们一起看看如何使用该组件.

0x00 升级Support包

升级Support包至25.0.0,并在build.gradle中添加引用.

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:support-v4:25.0.0'
    compile 'com.android.support:design:25.0.0'
}

0x01 添加布局文件

在布局文件添加BottomNavigationView组件




    

    
    

说明:

1.app:itemIconTint="#FFFFFF"设置图标的颜色
app:itemTextColor="#FFFFFF"设置文字的颜色
app:itemBackground="@color/colorPrimary" 设置背景色

如果图标设置为红色,则如下图:(注意图中使用的SVG图片)

2.app:menu="@menu/menu_bottom_nav"对应为导航栏的Menu布局在/res/menu/目录下:




    

    

    

    

    

0x02 在Java中监听点击事件

Activity中添加事件监听,如下:

public class BottomNavActivity extends AppCompatActivity {

    @BindView(R.id.nav_tv)
    TextView mNavTv;
    @BindView(R.id.bottom_nav)
    BottomNavigationView mBottomNav;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bottom_nav);
        ButterKnife.bind(this);

        mNavTv.setText(R.string.nav_ui);
        mBottomNav.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.bottom_nav_ui:
                        mNavTv.setText(item.getTitle());
                        break;
                    case R.id.bottom_nav_data:
                        mNavTv.setText(item.getTitle());
                        break;
                    case R.id.bottom_nav_service:
                        mNavTv.setText(item.getTitle());
                        break;
                    case R.id.bottom_nav_net:
                        mNavTv.setText(item.getTitle());
                        break;
                    case R.id.bottom_nav_media:
                        mNavTv.setText(item.getTitle());
                        break;
                }
                return true;
            }
        });
    }
}

0x03 运行与预览

编译项目并运行,效果如下:

手机为实体按键

手机为虚拟按键

0x04 注意事项

1.BottomNavigationView的默认高度为56dp
2.官方建议菜单项不多于5个
3.为了方便设置图标的颜色,建议使用SVG图片

0x05 项目地址

此项目的地址在此:DevWiki

具体代码在: app/src/main/java/net/devwiki/devwiki/ui/BottomNavActivity.java

如果喜欢就start或者点赞吧~

0x06 后记说明

我的微信公共号开通了,前期公共号功能较少,主要通知博客更新.扫码关注我吧~

微信公共号