如何解决NavHostFragment:使用导航抽屉重新打开更改的片段
如何重新打开我之前使用 NavHostFragment 导航到的片段?
导航抽屉:
Home => Animals-Fragment
片段:
Animals-Fragment => Bunnies-Fragment => Temporarily change Bunny color to blue from red
导航抽屉:
Bunnies-Fragment => Home
现在我想要的是,当我点击 Animals 时,它会显示被修改的 Bunnies-Fragment。这意味着,我想要该 Fragment 的已加载实例。我该怎么做?
我使用以下代码在片段之间交换:
NavHostFragment.findNavController(p)
.navigate(R.id.action_navigation_animals_to_bunniesFragment,bundle);
我的 HomeActivity 在它的 onCreate() 中有这个:
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home,R.id.navigation_dashboard,R.id.navigation_animals)
.build();
NavController navController = Navigation.findNavController(this,R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this,navController,appBarConfiguration);
NavigationUI.setupWithNavController(navView,navController);
解决方法
使用弹出窗口代替目的地
<action
android:id="@+id/action_ThirdFragment_to_FirstFragment"
app:popUpTo="@id/FirstFragment" />
要了解弹出窗口,我建议您观看此视频
https://www.youtube.com/watch?v=mLfWvSGG5c8
它以非常棒的方式解释了 PopUpTo 和 PopUpToInclusive
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。