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) {
}
});
}
3.隱藏所有的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);
}