说明: 考虑以下流程:片段A->登录->片段B。您可以通过右上方菜单(更多操作图标)从A导航到登录。 我希望用途达到登录后,再也没有回头路了。我的意思是
预期的行为:
我通过
进行管理 navigationController.navigate(
R.id.fragment_login, null, NavOptions.Builder()
.setPopUpTo(R.id.fragment_a, true)
.build()
)
实际行为:
我在https://github.com/rafaelaguerra/navigation_components_example/tree/menu_issue中有一个例子
答案 0 :(得分:0)
我结合了两个topLevelDestinationIds
activity_base_toolbar_main.setupWithNavController(
navController = navigationController,
configuration =
AppBarConfiguration.Builder(
R.id.fragment_login,
R.id.fragment_a
).build()
)
使用
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.fragment_login -> {
navigationController.navigate(
R.id.fragment_login, null, NavOptions.Builder()
.setPopUpTo(R.id.fragment_a, true)
.build()
)
...
}
但是对我来说,这仍然不是一个干净的解决方案