依赖
//BottomNavigation
implementation 'com.ashokvarma.android:bottom-navigation-bar:2.0.4'
页面
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/td"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
android:id="@+id/bottom_bar"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:layout_height="50dp"/>
主页面的简单操作
public class MainActivity_Lian extends AppCompatActivity implements BottomNavigationBar.OnTabSelectedListener{
private BottomNavigationBar bottomNavigationBar;
private String TAG = MainActivity.class.getSimpleName();
private Fragment_home fragment_home;
private Fragment_dingdan fragment_dingdan;
private Fragment_wode fragment_wode;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 获得组件
*/
bottomNavigationBar = findViewById(R.id.bottom_bar);
/**
* 导航基础设置 包括按钮选中效果 导航栏背景色等
*/
bottomNavigationBar
.setTabSelectedListener(this)
/**
* setMode() 内的参数有三种模式类型:
* MODE_DEFAULT 自动模式:导航栏Item的个数<=3用MODE_FIXED模式,否则用MODE_SHIFTING模式
*MODE_FIXED固定模式:未选中的Item显示文字,无切换动画效果。
*MODE_SHIFTING切换模式:未选中的Item不显示文字,选中的显示文字,有切换动画效果。
*/
.setMode(BottomNavigationBar.MODE_FIXED)
/**
*setBackgroundStyle() 内的参数有三种样式
*BACKGROUND_STYLE_DEFAULT:默认样式 如果设置的Mode为MODE_FIXED,将使用BACKGROUND_STYLE_STATIC
* 如果Mode为MODE_SHIFTING将使用BACKGROUND_STYLE_RIPPLE。
*BACKGROUND_STYLE_STATIC:静态样式 点击无波纹效果
*BACKGROUND_STYLE_RIPPLE:波纹样式 点击有波纹效果
*/
.setBackgroundStyle(BottomNavigationBar.BACKGROUND_STYLE_STATIC);
//.setActiveColor("#FF107FFD") //选中颜色
//.setInActiveColor("#e9e6e6") //未选中颜色
//.setBarBackgroundColor("#fff");//导航栏背景色
/**
* 添加导航按钮
*/
bottomNavigationBar
.addItem(newBottomNavigationItem(R.drawable.home_pressed,"首页")//选中的状态的图片
.setInactiveIconResource(R.drawable.home_normal)//没有选中的状态的图标
.setActiveColorResource(R.color.colorBlack)//选中字体颜色
.setInActiveColorResource(R.color.colorGray)//未选中字体颜色
);
bottomNavigationBar.addItem(newBottomNavigationItem(R.drawable.my_pressed,"订单")
.setInactiveIconResource(R.drawable.my_normal)//没有选中的状态的图标
.setActiveColorResource(R.color.colorBlack)//选中字体颜色
.setInActiveColorResource(R.color.colorGray)//未选中字体颜色
);
bottomNavigationBar.addItem(newBottomNavigationItem(R.drawable.home_active,"我的")
.setInactiveIconResource(R.drawable.homea)//没有选中的状态的图标
.setActiveColorResource(R.color.colorBlack)//选中字体颜色
.setInActiveColorResource(R.color.colorGray)//未选中字体颜色
);
//默认选中
bottomNavigationBar.setFirstSelectedPosition(0);
bottomNavigationBar.initialise();
bottomNavigationBar.setTabSelectedListener(this);
setDefaultFragment();
}
/**
* 设置默认导航栏
*/
privatevoidsetDefaultFragment() {
fragment_home=Fragment_home.newInstance("首页");
getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_home).commit();
}
@Override
publicvoidonTabSelected(intposition) {
switch(position){
case0:
if(fragment_home==null){
fragment_home=Fragment_home.newInstance("首页");
}
getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_home).commit();
break;
case1:
if(fragment_dingdan==null){
fragment_dingdan=Fragment_dingdan.newInstance("订单");
}
getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_dingdan).commit();
break;
case2:
if(fragment_wode==null){
fragment_wode=Fragment_wode.newInstance("我的");
}
getSupportFragmentManager().beginTransaction().replace(R.id.td,fragment_wode).commit();
break;
default:
break;
}
}
/**
* 设置未选中Fragment事务
*/
@Override
publicvoidonTabUnselected(intposition) {
}
/**
* 设置释放Fragment事务
*/
@Override
publicvoidonTabReselected(intposition) {
}