[英]How can I clear every fragments in back stack using Navigation Component (for example when HTTP 401 triggeres) and sent to login fragment
我们有下一个属性可以在打开另一个片段时删除片段/片段。
app:popUpTo="..."
app:popUpToInclusive="true"
但是,如果我需要清除所有返回堆栈而不知道哪个 id 是第一个(并且起始目的地可能已经从堆栈中删除),例如 401 事件。
我该怎么做?
例如,我可能在后台堆栈中有 5 个片段,但我不知道第一个片段的 id,如何将它们全部删除并打开登录片段?
我实现了这个解决方案,虽然它看起来很困难
navController.graph = navController.graph.apply {
startDestination = R.id.loginFragment
}
val navOptions = NavOptions.Builder()
.setPopUpTo(R.id.loginFragment, true)
.build()
navController.navigate(R.id.loginFragment, null, navOptions)
但它会清除所有返回堆栈,堆栈中只有一个 loginFragment
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.