【发布时间】:2021-02-14 23:01:36
【问题描述】:
我有一个小应用程序,里面有活动和两个片段。片段与 BottomNavitationView 一起加载。
MonitoringFragment 在 Activity 的 OnCreate 上加载。
我想将这个添加到后台堆栈中,所以当我在第二个片段(ConnectionFragment)中并且我按下返回时,我会到达第一个片段。这工作正常。但是 BotttonNavigationView 没有得到更新(从第二个片段返回时没有将第一个项目设置为选中。图 3)。我认为它自己不能处理这种行为,我必须自己实现它,但我所做的每一次尝试都没有成功。
活动代码:
Fragment activeFragment = null;
BottomNavigationView bottomNavigationView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bottomNavigationView = findViewById(R.id.bottom_navigation);
bottomNavigationView.setOnNavigationItemSelectedListener(item -> {
switch (item.getItemId()) {
case R.id.monitoring:
setCurrentFragment(new MonitoringFragment(), false);
break;
case R.id.connection:
setCurrentFragment(new ConnectionFragment(), true);
break;
}
return true;
});
setCurrentFragment(new MonitoringFragment(), true);
}
private void setCurrentFragment(Fragment fragment, boolean addToBackStack) {
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.fragment_container, fragment);
if (addToBackStack) {
fragmentTransaction.addToBackStack(null);
}
fragmentTransaction.commit();
activeFragment = fragment;
}
谢谢!
【问题讨论】:
标签: android android-fragments fragment bottomnavigationview