我正在使用导航组件加载我的片段,如下所示: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
在顶部与一个微调。我想重新加载/刷新fragment
及其视图模型时,spinner
项目被选中。我尝试了下面的代码重新加载,但它不工作。而且,我知道我们不应该使用fragmentManager
在导航组件
val ftr: FragmentTransaction = requireFragmentManager().beginTransaction()
ftr.detach(this).attach(this).commit()
任何帮助都将不胜感激。
2条答案
按热度按时间nfzehxib1#
很抱歉回复的太晚了。2我正在用下面的代码来处理同样的场景。3这可能会有帮助。4在你的旋转器ItemClick中调用这个方法。5我们必须使用popbackstack来避免一次又一次的添加相同的片段。
y53ybaqx2#
上面的答案https://stackoverflow.com/a/66171..是正确的
如果您想在执行特定操作后重新加载/刷新您当前片段,您必须销毁此当前片段并再次导航到此处