Android 底部栏 新组件 BottomNavigationView

HildredY25 8年前
   <p>现在我们大多数 底部栏 应该沉浸在 <strong>tablayout +view pager</strong> 的情况 。</p>    <p>当然 我相信 还有不少数的人 在使用 <strong>radiogroup</strong> 哈哈 说的是不是你 ,反正我是用的tablayout。。。那今天就分享一下这两篇 <strong>BottomNavigationView</strong> 文章 其实用啊很简单 ,效果还不错</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/fc37328f6fd70277a3b893d849676354.gif"></p>    <p style="text-align:center">封装好的.gif</p>    <h2><strong>概述</strong></h2>    <p>BottomNavigationView 很早之前就在 Material Design 中出现了,但是直到 Android Support Library 25 中才增加了 BottomNavigationView 控件。展示如图:</p>    <p style="text-align:center"><img src="https://simg.open-open.com/show/e5da623ec9947fd5b3de1ab4ca659a7f.jpg"></p>    <p style="text-align:center">8E42C3D8-E597-40AA-BDB2-BDC43DEF6B68.png</p>    <h2><strong>优点</strong></h2>    <p>使用很方便;过度动画效果不错;不用改变颜色来标记状态,也能有直观的选中状态</p>    <p>素材图片是通过一个Android Stuido插件android material design icon generator,进行下载的。这个插件中有官方全套的Material Design图片素材,安装这个插件后,可以通过new最后一个选项Material Design Icon进行下载想要素材,也可以在布局文件窗口直接快捷键ctrl + alt +m进入下载界面</p>    <h2><strong>代码部分</strong></h2>    <ul>     <li> <p>布局文件</p> </li>    </ul>    <pre>  <code class="language-java"><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:app="http://schemas.android.com/apk/res-auto"      android:layout_width="match_parent"      android:layout_height="match_parent">        <android.support.design.widget.BottomNavigationView          android:id="@+id/bnv_bottom_activity"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:layout_alignParentBottom="true"          app:itemBackground="@color/colorAccent"          app:itemIconTint="@android:color/white"          app:itemTextColor="@android:color/white"          app:menu="@menu/bottom_view" />      </RelativeLayout></code></pre>    <ul>     <li> <p>创建一个menu文件夹,新建名字为bottom_view.xml的Menu resource文件</p> </li>    </ul>    <pre>  <code class="language-java"><?xml version="1.0" encoding="utf-8"?>  <menu xmlns:android="http://schemas.android.com/apk/res/android">         <item          android:icon="@drawable/ic_account_balance_white_24dp"          android:title="首页" />      <item          android:icon="@drawable/ic_face_white_24dp"          android:title="好友" />      <item          android:icon="@drawable/ic_accessibility_white_24dp"          android:title="广场" />        <item          android:icon="@drawable/ic_settings_white_24dp"          android:title="设置" />    </menu></code></pre>    <ul>     <li> <p>在Activity使用</p> </li>    </ul>    <pre>  <code class="language-java">public class BottomViewActivity extends AppCompatActivity {      private MenuItem lastItem; // 上一个选中的item        @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_bottom_view);          initView();      }        /**       * 初始化       */      private void initView() {         BottomNavigationView bnv = (BottomNavigationView) findViewById(R.id.bnv_bottom_activity);          //拿到默认选中的item          lastItem = bnv.getMenu().getItem(0);          //点击选择item          bnv.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {              @Override              public boolean onNavigationItemSelected(@NonNull MenuItem item) {                  if (lastItem != item) { // 判断当前点击是否为item自身                      lastItem = item;                      String title = item.getTitle().toString();                      Toast.makeText(BottomViewActivity.this, title, Toast.LENGTH_LONG).show();                      return true;                  }                  return false;              }          });      }  }</code></pre>    <p> </p>    <p>来自:http://www.jianshu.com/p/2bd1d1f35465</p>    <p> </p>