android - 带有 NavigationDrawer 的 Android 问题 NavigationView
问题描述
我正在使用带有 DrawerLayout 的 NavigationView。
我的代码:
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;
}
});
现在的问题是,当我从导航抽屉中多次单击第二个项目时,它会创建许多对象并在后按中创建一个问题。当我按下它关闭第二个片段的所有对象时,然后返回到第一个片段。我想创建在单击导航抽屉项目时打开的所有片段的唯一单个实例。我怎么能做到这一点?
解决方案
推荐阅读
- php - laravel试图在空值上获取非对象的属性
- php - Nginx 按路径分隔应用程序
- python - Python - 从嵌套 json 中提取数据的问题
- android - 带有 ConstraintLayout 的 CustomDialog 无法在 Android 9 中采用宽度
- python - 为什么屏幕截图在某些 PC 上不起作用(Python)
- amazon-ecs - AWS ECS 任务定义:volumes[0] 中的未知参数:“dockerVolumeConfiguration”,必须是以下之一:名称、主机
- ios - 如何/从哪里填充 AVAsset 的属性“preferredVolume”的值?
- excel - 将数据附加到现有工作表的最佳方式
- postgresql - 使用 jsonb 对象将 varchar 数组转换为数组
- winforms - 如何使用 Winforms 对 SourceCache 进行排序、绑定到 BindingList 以及手动处理 IChangeSet?