Android 底部欄 新組件 BottomNavigationView
現在我們大多數 底部欄 應該沉浸在 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!