首页 > 解决方案 > popBackStack 不更新 NavigationUI 上的操作栏

问题描述

这是我完整抽屉的定义代码:

NavigationView navigationView = findViewById(R.id.nav_view);
        mAppBarConfiguration = new AppBarConfiguration.Builder(
                R.id.nav_home, R.id.nav_lontr, R.id.nav_att, R.id.nav_djong,
                R.id.nav_fon).setOpenableLayout(drawer)
                .build(); 

 NavHostFragment navHostFragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
        NavController navController = navHostFragment.getNavController();

        NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration); // Here my nav action bar
        NavigationUI.setupWithNavController(navigationView, navController);

想象一下,一个用户在 nav_lontr,我想给他放一个快捷方式让他回到 nav_home,它看起来像这样:


shortcuttoOther.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              getActivity().getSupportFragmentManager().popBackStack();
            }
        });

发送 popBackStack 后,当前的 Fragment 被关闭,然而,尽管返回到 home nav,appbar 仍然保持 Fragment 的名称关闭,此外,在侧抽屉中,关闭的 Fragment 也被选中。为什么即使在使用 popBackStack 关闭当前片段后,我的 NavigationUI 也不会使用当前标签(主页)的标题更新我的 appBar?

不是在我的fragment home的appbar中显示标题,而是显示popbackstack关闭的fragment的标题,也就是已经关闭的fragment。

标签: androidnavigation-drawerdrawerlayout

解决方案


推荐阅读