gpt4 book ai didi

android - 使用导航组件重新加载 fragment

转载 作者:行者123 更新时间:2023-12-03 19:05:02 25 4
gpt4 key购买 nike

我正在使用导航组件来加载我的 fragment ,如下所示:
https://developer.android.com/guide/navigation/navigation-getting-started

navController = findNavController(R.id.nav_host_fragment)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.navigation_opt1,
R.id.navigation_opt2,
R.id.navigation_opt3,
R.id.navigation_more
)
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
我还有一个 Toolbar在顶部有一个 Spinner。我想重新加载/刷新 fragment及其 View 模型当 spinner项目被选中。我尝试了以下代码进行重新加载,但它不起作用。另外,我知道我们不应该使用 fragmentManager在导航组件中
val ftr: FragmentTransaction = requireFragmentManager().beginTransaction()
ftr.detach(this).attach(this).commit()
任何帮助,将不胜感激。

最佳答案

抱歉回复晚了。我将以下代码用于相同的场景。
这可能会有所帮助。在您的微调器 ItemClick 中调用此方法。
我们必须使用 popbackstack 来避免一次又一次地添加相同的 fragment 。

  private fun refreshCurrentFragment(){
val id = navController.currentDestination?.id
navController.popBackStack(id!!,true)
navController.navigate(id)
}

关于android - 使用导航组件重新加载 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63840150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com