第一步 compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.0' //底部导航栏
第二步 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main.MainActivity">
<FrameLayout
android:id="@+id/fl_content"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp"/>
<com.ashokvarma.bottomnavigation.BottomNavigationBar
android:id="@+id/main_bottom_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
/>
</LinearLayout>
第三步
mainBottomNav
.addItem(new BottomNavigationItem(R.drawable.tabhost0_0, "推荐"))
.addItem(new BottomNavigationItem(R.drawable.tabhost1_1, "书库"))
.addItem(new BottomNavigationItem(R.drawable.tabhost2_2, "搜索"))
.addItem(new BottomNavigationItem(R.drawable.tabhost3_3, "下载"))
.initialise();
第三步添加fragment
fragments = new Fragment[]{new RecommendFragment(),new BooksFragment()};
FragmentManager fragmentManager = getSupportFragmentManager();
transaction = fragmentManager.beginTransaction();
for (int i = 0; i < fragments.length; i++){
transaction.add(R.id.fl_content,fragments[i]);
transaction.hide(fragments[i]);
}
//默认显示第一个fragment
transaction.show(fragments[0]);
transaction.commit(); //提交
第四步设置监听
mainBottomNav.setTabSelectedListener(new BottomNavigationBar.OnTabSelectedListener() {
@Override
public void onTabSelected(int position) {
// 选中回调
Log.d("print", "onTabSelected() called with: " + "position = [" + position + "]");
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.hide(fragments[lastIndex]);
transaction.show(fragments[position]);
transaction.commitAllowingStateLoss();
lastIndex = position;
}
@Override
public void onTabUnselected(int position) {
// 上一次选择的position
// FragmentManager fragmentManager = getSupportFragmentManager();
// FragmentTransaction transaction = fragmentManager.beginTransaction();
// transaction.hide(fragments[position]);
Log.d("print", "onTabUnselected() called with: " + "position = [" + position + "]");
}
@Override
public void onTabReselected(int position) {
// 重复点击的时候回调
Log.d("print", "onTabReselected() called with: " + "position = [" + position + "]");
}
});