当我从BottomNavigationBar打开片段时,它会完美打开。当我按下后退按钮时,前一个片段打开但BottomNavigationBar的状态不会改变。
在我的屏幕截图中,当我从Account片段中反对时,Home片段打开但BottomNavigationBar的状态尚未更改。
屏幕截图1 - https://drive.google.com/file/d/12cDvhwO1jpG2A1PUsfHQGProqx2cT6Bp/view
屏幕截图2 - https://drive.google.com/file/d/1Zws5sMJeXxts6k6IEBGUGyJYfZP58Czs/view
btnNavBar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.action_item1:
loadFragment(fragmentManager, new HomeFragment(), "Home");
break;
case R.id.action_item2:
loadFragment(fragmentManager, new SearchFragment(), "Search");
break;
case R.id.action_item3:
loadFragment(fragmentManager, new AccountFragment(), "Account");
break;
}
return true;
}
});
public static void loadFragment(FragmentManager fragmentManager, Fragment fragment, String tag) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.frameLayoutContainer, fragment);
fragmentTransaction.commit();
}
答案 0 :(得分:0)
我建议您不要将片段添加到后台堆栈,因为它不是Android用户的预期行为。底栏用于向用户显示3到5个不同的目的地(例如,新闻订阅源,用户配置文件等)。选择选项卡时,您应该只更改当前片段(而不是创建片段堆栈)。后退按钮应仅关闭应用程序,或重新打开上一个屏幕(如果有的话)(绝对不会重新打开上一个选项卡:))。我建议您查看BottomNavigationBar的这个Material Design guidelines。