Android 底部欄 新組件 BottomNavigationView

HildredY25 8年前發布 | 8K 次閱讀 安卓開發 Android開發 移動開發

現在我們大多數 底部欄 應該沉浸在 tablayout +view pager 的情況 。

當然 我相信 還有不少數的人 在使用 radiogroup 哈哈 說的是不是你 ,反正我是用的tablayout。。。那今天就分享一下這兩篇 BottomNavigationView 文章 其實用啊很簡單 ,效果還不錯

封裝好的.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進入下載界面

代碼部分

  • 布局文件

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

 

來自:http://www.jianshu.com/p/2bd1d1f35465

 

 本文由用戶 HildredY25 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!