[英]Android clear backstack when leaving item tab BottomNavigation
我正在使用最后一个导航库(版本 2.4.0),其中包括多个带有底部导航视图的 backstack。
默认行为是当用户 go 返回选项卡时保存每个 backstack。 当用户离开标签时,我想清除后台堆栈。
基于带有 3 个选项卡的底部导航:
选项卡1 | 选项卡2 | Tab3 |
---|---|---|
屏幕A1 | 屏幕B1 | 屏幕C1 |
屏幕A2 | 屏幕B2 | 屏幕C2 |
从 Tab1,如果用户:
谢谢
在您的导航文件中,将这些属性app:popUpTo
和app:popUpToInclusive
到导航到 ScreenA2 的操作中。
<action
android:id="@+id/action_A1_to_A2"
app:destination="@id/A2"
app:popUpTo="@+id/A1"
app:popUpToInclusive="true"/>
有关更多信息,请查看此链接: popUpTo 示例:循环逻辑
在调用方法导航到 TAB1 之前尝试调用以下内容。
navController.popBackStack(R.id.ScreenA1, false);
这对我有用,我和你有类似的情况。
您可以关闭选项卡的多个后台堆栈,就像在 lib 2.4 版之前一样。 为此,您应该更改
navView.setupWithNavController(navController)
至
NavigationUI.setupWithNavController(navView, navController, false)
我刚刚由 onNavigationItemSelected Listener 完成
navigation.xml 和 menu.xml 中的 id 应该不同
当您处理特定项目的点击操作时,试试这个
R.id.home_bottom_item -> {navController.popBackStack(); navController.navigate(R.id.home_bottom_item) }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.