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

xiaoxiao2021-02-28  124

前言

    好久没有更新博客了,也许是毕业的伤感,也许是刚工作的迷茫,已经许久没有动过写博客的念头了,今天重新开始更新博客,神奇的蓝胖子正式归来。    由于近来没有入手完整的项目,闲来无事就去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); } }

当你完成了以上操作之后,就可以看到底部导航栏的效果了哦! 让我们一起学习,一起进步,我们下次再见 --神奇的蓝胖子
转载请注明原文地址: https://www.6miu.com/read-35111.html

最新回复(0)