Android Design风格组件之Bottom navigation
来源:互联网 发布:遗传算法的步骤 编辑:程序博客网 时间:2024/06/07 03:27
从com.android.support:design:25.1.0开始支持Bottom navigation
如何添加
1.在 build.gradle添加最新的design 和appcompat包
dependencies { compile 'com.android.support:appcompat-v7:X.X.X' compile 'com.android.support:design:X.X.X' // where X.X.X version}
2.activity继承android.support.v7.app.AppCompatActivity
public class MainActivity extends AppCompatActivity { ... }
3.在menu问加你声明navigation的选项
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/recents" android:title="Recents" android:icon="@drawable/ic_history_24dp"/> <item android:id="@+id/favorites" android:title="Favorites" android:icon="@drawable/ic_favorite_24dp"/> <item android:id="@+id/nearby" android:title="Nearby" android:icon="@drawable/ic_place_24dp"/></menu>
4.在layout.xml文件里引入BottomNavigationView
<android.support.design.widget.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_navigation_menu"/>
如何设置风格
1.为navigation bar定义默认的颜色
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="false" android:color="@color/pink"/> <item android:color="@android:color/white"/></selector>
2.为navigation bar items定义背景色
// res/drawable, to support devices lower then 21 API<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@android:color/white"/> <item android:drawable="@android:color/transparent"/></selector>// res/drawable-v21 folder, for devices greater or equal then 21 API<ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@android:color/white"></ripple>
3.定义风格文件style.xml
<style name="BottomNavigation"> <item name="android:background">@color/indigo</item> <item name="itemBackground">@drawable/navigation_bar_item_bg</item> <item name="itemIconTint">@color/navigation_bar_txt_color</item> <item name="itemTextColor">@color/navigation_bar_txt_color</item> <item name="paddingStart">@dimen/bottom_navigation_padding</item> <item name="paddingEnd">@dimen/bottom_navigation_padding</item></style>
4.在layout.xml中应用style
<android.support.design.widget.BottomNavigationView android:id="@+id/bottomNavigationView" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/bottom_navigation_menu" style="@style/BottomNavigation"/>
获取选中项
BottomNavigationView bottomNavigationView; // ...bottomNavigationView.setOnNavigationItemSelectedListener(new OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { if (item.getItemId() == R.id.favorites) { // on favorites clicked return true; } return false; }});
程序中选择item
BottomNavigationView navigationView; // ...navigationView= (BottomNavigationView) findViewById(R.id.bottomNavigationView); navigationView.getMenu().getItem(itemToSelect).setChecked(true);
注意:从design 25.1.0 开始支持.
获取选中的item
没有api可以get选中的item
但是有以下几种方法,可以get到。
1.从BottomNavigationView 得到menu,然后从中获取被选中的item
BottomNavigationView bottomNavigationView; // ...int getSelectedItem() { Menu menu = bottomNavigationView.getMenu(); for (int i = 0; i < menu.size(); i++) { if (menu.getItem(i).isChecked()) { return i; } } return 0;}
2.添加selectedItem的全局变量。每次在程序中选中item,或OnNavigationItemSelected接收事件时,都更新它。
阅读全文
0 0
- Android Design风格组件之Bottom navigation
- Material Design学习之 Bottom navigation
- Android Design风格组件之CardView
- Android Design风格组件之FloatingActionButton
- Android Design风格组件之FloatingActionButton
- Android Design风格组件之TextInputLayout
- Android Design风格组件之CollapsingToolbarLayout
- Android Design风格组件之BottomSheets
- Android Bottom Navigation
- Google 发布 Bottom Navigation design guidelines
- Android Material Design系列之Navigation Drawer
- Android Material Bottom Navigation使用教程
- Android L metral design风格之CardView
- Android Design - 设计风格
- 模仿微信,android bottom navigation的实现
- 使用Bottom Navigation Activity实现Android底部导航栏
- Android开发之拥有Material Design风格的折叠布局
- Metarial design侧滑栏之Navigation Drawer
- PL/SQL登录时报连接符标识错误解决方法
- textview 手动的设置周围的照片
- Webpack打包后体积过大的优化思路
- 分布式锁的几种实现方式
- 2017年给自己定下的小目标
- Android Design风格组件之Bottom navigation
- 分享我的Studio LogCat
- druid数据开放监控设置方式
- js学习笔记
- 守护进程
- u-boot第二阶段分析(四)
- C资料
- 基于STM32的USB开发
- TCP/IP 相关知识点与面试题集