我正在将NavigationView与DrawerLayout一起使用。
我的代码:
NavHeaderMainBinding navHeaderMainBinding = DataBindingUtil.inflate(getLayoutInflater(),
R.layout.nav_header_main, mActivityMainBinding.navigationView, false);
mActivityMainBinding.navigationView.addHeaderView(navHeaderMainBinding.getRoot());
navHeaderMainBinding.setViewModel(mMainViewModel);
addNavigationItem();
NavigationUI.setupWithNavController(mActivityMainBinding.navigationView, navController);
mNavigationView.setNavigationItemSelectedListener(
item -> {
mDrawer.closeDrawer(GravityCompat.START);
switch (item.getItemId()) {
case 0:
// setFragment(AboutFragment.newInstance(), AboutFragment.TAG);
navController.navigate(R.id.nav_home);
return true;
case 1:
navController.navigate(R.id.nav_paging);
// RateUsDialog.newInstance().show(getSupportFragmentManager());
return true;
case 2:
// startActivity(FeedActivity.newIntent(MainActivity.this));
return true;
case 3:
mMainViewModel.logout();
return true;
default:
return false;
}
});
现在的问题是,当我从导航抽屉中多次单击第二个项目时,它会创建许多对象并在后按中创建一个问题。当我按回它关闭第二个片段的所有对象,然后返回到第一个片段。 我想创建所有片段的唯一单个实例,这些实例在单击导航抽屉项目时打开。 我该如何实现?