Android Material Design中的BottomNavigationView实现底部导航栏

来源:互联网 发布:地震科普知识网络竞赛 编辑:程序博客网 时间:2024/05/20 20:01

前言

    好久没有更新博客了,也许是毕业的伤感,也许是刚工作的迷茫,已经许久没有动过写博客的念头了,今天重新开始更新博客,神奇的蓝胖子正式归来。    由于近来没有入手完整的项目,闲来无事就去Android官网看了看(大家也可以经常去逛一下哦!),在设计板块中,BottomNavigationView控件又再一次的出现在我的眼前,突然想起来,这是个多么好的控件啊,怎么能不和大家一起分享一下呢!

为什么要用BottomNavigationView

    还记得我们在此之前是如何实现底部导航栏功能的吗?在BottomNavigationView没出来之前,也有几套比较成熟或者大家使用比较多的方案:        第一种 使用LinearLayout + TextView实现了底部导航栏的效果。        第二种 使用RadioGroup + RadioButton实现了底部导航栏的效果。
    这两种方法也都能实现底部导航栏的效果,但是用过的人应该都清楚,实现过程太过繁琐,而BottomNavigationView却可以让你用最少的代码实现最动人的效果。

使用步骤

1. 因为BottomNavigationView是属于设计包中的控件,在使用之前要先在gradle文件中引入设计包。
dependencies {    compile 'com.android.support:design:25.3.1'}
2.在布局文件中使用该控件,其中menu属性,就是我们经常使用的菜单布局。

   <android.support.design.widget.BottomNavigationView        android:id="@+id/navigation"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_gravity="bottom"        android:background="?android:attr/windowBackground"        app:menu="@menu/navigation" />
其menu菜单布局如下
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:id="@+id/navigation_home"        android:icon="@drawable/ic_home_black_24dp"        android:title="首页" />    <item        android:id="@+id/navigation_dashboard"        android:icon="@drawable/ic_dashboard_black_24dp"        android:title="数据" />    <item        android:id="@+id/navigation_notifications"        android:icon="@drawable/ic_notifications_black_24dp"        android:title="通知" /></menu>
3.最后一步,就在Activity中使用就可以了,这里我只是简单的实现了点击事件。
public class BottomActivity extends AppCompatActivity {    private TextView mTextMessage;    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener            = new BottomNavigationView.OnNavigationItemSelectedListener() {        @Override        public boolean onNavigationItemSelected(@NonNull MenuItem item) {            switch (item.getItemId()) {                case R.id.navigation_home:                    mTextMessage.setText("首页");                    return true;                case R.id.navigation_dashboard:                    mTextMessage.setText("数据");                    return true;                case R.id.navigation_notifications:                    mTextMessage.setText("通知");                    return true;            }            return false;        }    };    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_bottom);        mTextMessage = (TextView) findViewById(R.id.message);        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);    }}

当你完成了以上操作之后,就可以看到底部导航栏的效果了哦!
让我们一起学习,一起进步,我们下次再见 --神奇的蓝胖子
















阅读全文
1 0