Android——BottomNavigationView简单学习使用

BottomNavigationViewandroid.support:design:25.0.0推出,想学习使用,就需要将依赖的design包升级到25.0.0版本,好像兼容到系统版本14,不是很确定。个人感觉现在兼容到19应该就可以了吧

1. 简单使用

先看效果:

《Android——BottomNavigationView简单学习使用》 BottomNavigationView默认效果

优点:使用很方便;过度动画效果不错;不用改变颜色来标记状态,也能有直观的选中状态
槽点:由于有动画效果,总觉得比例有点别扭,尤其是默认情况下,选中第一个或者最后一个tab

不过感觉优点完全可以盖住槽点,以后打算使用

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

1.1 布局文件 <p>

<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>

关键在于四个见名知意的app属性

创建一个menu文件夹,新建名字为bottom_view.xmlMenu 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>

目前为止,对Menu的基础知识,了解也不多,感觉也得学习学习啦

2. 在Activity使用 <p>

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;
            }
        });
    }
}

稍微做了一点的处理,点击当前选中的tab无效

记得之前学习使用RudioGroup来实现底部的tab导航时,各种选中未选中状态,比较繁琐,BottomNavigionView的确很方便。简单扫了一眼源码,代码量相当的少,但麻雀虽小五脏俱全,涉及的知识也是不少的,以后再进行学习,尝试定制化

3. 最后 <p>

之前很少关注官方新推出的各种库,完全不知道都有哪些好用的控件和工具,真是错过一大堆好的学习资源,罪过罪过。以后要开始留意跟进学习

本人很菜,有错误请指出

共勉 :)

    原文作者:英勇青铜5
    原文地址: https://www.jianshu.com/p/1a1a1859793d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞