使用Android support library25.0.0 提供的BottomNavigationView实现底部导航功能

血红的双手。 提交于 2019-11-28 16:03:38

底部导航控件,我们一般使用的是tab页的形式,或各种自定义的样式(tablayout,radiogroup等),最近android25 support库中提供了BottomNavigationView,使得我们能实现更加炫酷的效果,当然,这个效果很多大牛早已实现了,可参考: 1.https://github.com/roughike/BottomBar

输入图片说明

2.https://github.com/aurelhubert/ahbottomnavigation

输入图片说明

上面的效果显然更加炫酷,但google官方出了相应控件,还是要优先使用的。 使用步骤如下:

  1. 导入库
compile 'com.android.support:design:25.0.0'
  1. 新建底部导航使用到的菜单文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add"
        android:icon="@android:drawable/ic_menu_call"
        android:title="call" />
    <item
        android:id="@+id/delete"
        android:icon="@android:drawable/ic_menu_camera"
        android:title="message" />
    <item
        android:id="@+id/setting"
        android:icon="@android:drawable/ic_menu_compass"
        android:title="setting" />

    <item
        android:id="@+id/me"
        android:icon="@android:drawable/ic_menu_gallery"
        android:title="me"/>
</menu>
  1. 布局中引入控件:
<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        app:menu="@menu/navigation"/>

4.代码处理:

mNavigationView = (BottomNavigationView) findViewById(R.id.navigation);

        mNavigationView.setOnNavigationItemSelectedListener(
                new BottomNavigationView.OnNavigationItemSelectedListener() {
                    @Override
                    public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                        mTextView.setText(item.getTitle().toString().toUpperCase());
                        return true;
                    }
                });

至此,可观察效果如下:

输入图片说明

使用google官方的tablayout控件实现底部导航效果,可参考我的另一个博文: 使用android support library中的tablayout实现页签切换效果出现的问题

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!