首页 > 解决方案 > 带有 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;
            }
        });

现在的问题是,当我从导航抽屉中多次单击第二个项目时,它会创建许多对象并在后按中创建一个问题。当我按下它关闭第二个片段的所有对象时,然后返回到第一个片段。我想创建在单击导航抽屉项目时打开的所有片段的唯一单个实例。我怎么能做到这一点?

标签: androidnavigationandroid-jetpack

解决方案


推荐阅读