效果图
1.先导包,在Gradle 加上这个:
compile ‘com.roughike:bottom-bar:2.0.2’
2.menu下button_menu.xml
`
public class MainActivity extends AppCompatActivity {
private HomeFragment mHomeFragment;
private ChatFragment mQuestionFragment;
private ProfileFragment mProfileFragment;
private FragmentManager mFragmentManager;
private FragmentTransaction mTransaction;
private BottomBar mBottomBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mFragmentManager = getSupportFragmentManager();
mBottomBar = BottomBar.attach(this,savedInstanceState);
mBottomBar.setItems(R.menu.bottombar_menu);
mBottomBar.selectTabAtPosition(0,false);
mBottomBar.setActiveTabColor("#002244");
mBottomBar.setOnMenuTabClickListener(new OnMenuTabClickListener() {
@Override
public void onMenuTabSelected(@IdRes int menuItemId) {
mTransaction = mFragmentManager.beginTransaction();
hideAllFragments(mTransaction);
if(menuItemId == R.id.navigation_tab_home){
showHomeFragment();
}else if(menuItemId == R.id.navigation_tab_Question){
showQuesTionFragment();
}else if(menuItemId == R.id.navigation_tab_wo){
showProfileFragment();
}
mTransaction.commit();
}
@Override
public void onMenuTabReSelected(@IdRes int menuItemId) {
}
});
}
4.隐藏所有的fragment,并且取消所有的底部导航栏的icon的高亮状态
private void hideAllFragments(FragmentTransaction transaction) {
if (mHomeFragment != null) {
transaction.hide(mHomeFragment);
}
if (mQuestionFragment != null) {
transaction.hide(mQuestionFragment);
}
if (mProfileFragment != null) {
transaction.hide(mProfileFragment);
}
}
@Override
public void onBackPressed() {
// super.onBackPressed(); 不要调用父类的方法
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
}
作者:王燕霞
原文链接:https://blog.csdn.net/be_me/article/details/80822331