Android用BottomNavigationBar实现底部导航栏
step1.:
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.4'
step2 :布局文件中使用
<com.ashokvarma.bottomnavigation.BottomNavigationBar android:id="@+id/bottom_navigation_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_alignParentBottom="true"/>
step3 :在activity中使用,先实例化控件
mBottomNavigationBar= (BottomNavigationBar)findViewById(R.id.bottom_navigation_bar);
step4 :
mBottomNavigationBar.addItem(new BottomNavigationItem(R.drawable.ic_home_index, "首页")) .addItem(new BottomNavigationItem(R.drawable.ic_home_order, "订单")) .addItem(new BottomNavigationItem(R.drawable.ic_home_mine, "我的")) .setFirstSelectedPosition(0) //设置默认选择按钮 .initialise(); //所有的设置需在调用该方法前完成
step5 : 实现点击事件
mBottomNavigationBar //设置lab点击事件
mBottomNavigationBar.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() { @Override
public void onTabSelected(int position) {
if (index == 2) {
startActivity(new Intent(MainActivity.this, ChatActivity.class)); return; }
}
@Override
public void onTabUnselected(int position) {}
@Override
public void onTabReselected(int position) {}
});
增强:
setModel和setBackgroundStyle
Mode和BackgroundStyle分别有三种,分别包含一种Default模式:
- Mode包含3种Mode:
- MODE_DEFAULT
如果Item的个数<=3就会使用MODE_FIXED模式,否则使用MODE_SHIFTING模式
- MODE_FIXED
填充模式,未选中的Item会显示文字,没有换挡动画。
- MODE_SHIFTING
换挡模式,未选中的Item不会显示文字,选中的会显示文字。在切换的时候会有一个像换挡的动画
- Background Style包含3种Style:
- BACKGROUND_STYLE_DEFAULT
如果设置的Mode为MODE_FIXED,将使用BACKGROUND_STYLE_STATIC 。如果Mode为MODE_SHIFTING将使用BACKGROUND_STYLE_RIPPLE。
- BACKGROUND_STYLE_STATIC
点击的时候没有水波纹效果
- BACKGROUND_STYLE_RIPPLE
点击的时候有水波纹效果