[英]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.