Android 底部栏 新组件 BottomNavigationView

现在我们大多数 底部栏 应该沉浸在tablayout +view pager的情况 。
当然 我相信 还有不少数的人 在使用radiogroup 哈哈 说的是不是你 ,反正我是用的tablayout。。。那今天就分享一下这两篇BottomNavigationView文章 其实用啊很简单 ,效果还不错

首先大家可以看看这篇文章也不错,封装好的BottomNavigationView
这是原文作者 开始都忘了写转载:
http://www.jianshu.com/p/1a1a1859793d

封装好的.gif

概述

BottomNavigationView 很早之前就在 Material Design 中出现了,但是直到 Android Support Library 25 中才增加了 BottomNavigationView 控件。展示如图:

8E42C3D8-E597-40AA-BDB2-BDC43DEF6B68.png

优点

使用很方便;过度动画效果不错;不用改变颜色来标记状态,也能有直观的选中状态

素材图片是通过一个Android Stuido插件android material design icon generator,进行下载的。这个插件中有官方全套的Material Design图片素材,安装这个插件后,可以通过new最后一个选项Material Design Icon进行下载想要素材,也可以在布局文件窗口直接快捷键ctrl + alt +m进入下载界面

代码部分

  • build.gradle 文件
compile'com.android.support:design:25.0.0'
  • 布局文件
<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>
  • 创建一个menu文件夹,新建名字为bottom_view.xml的Menu resource文件
<?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>
  • 在Activity使用
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;
            }
        });
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,613评论 25 709
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,642评论 2 45
  • 每个女人都喜欢网购,一网购就疯狂,而我的妈妈也是一个网购狂魔。 我的妈妈,有时候虽然不喜欢出去,...
    84ba189227d8阅读 283评论 0 0
  • “买书如山倒,读书如抽丝”是豆瓣一小组的名字,常分享有关书籍购买的信息。今天,就借这名,来谈谈买书的事情。 实体书...
    西鹤阅读 1,589评论 3 25
  • 作者:枫凌 思君念妾迎雪归 此时已是连理日 满心欢喜着红装 朝曦映月天边红 摇红烛影忆平生 漫漫长夜难为情 陋室岂...
    惜君2017阅读 445评论 0 0