1

我正在使用最后一个导航库(版本 2.4.0),其中包括多个带有底部导航视图的 backstack。

默认行为是当用户返回选项卡时保存每个 backstack。当用户离开标签时,我想清除后台堆栈。

基于带有 3 个选项卡的底部导航:

选项卡1 选项卡2 Tab3
屏幕A1 屏幕B1 屏幕C1
屏幕A2 屏幕B2 屏幕C2

从 Tab1,如果用户:

  • 转到屏幕 A2
  • 点击 Tab2(显示 ScreenB1)
  • 返回Tab1
  • 这里我想要 ScreenA1 而不是 ScreenA2 (导航库的默认行为)

谢谢

4

1 回答 1

-1

我刚刚由 onNavigationItemSelected Listener 完成

  1. 您的 navigation.xml 和 menu.xml 中的 id 应该不同

  2. 当您处理特定项目的点击操作时,试试这个

             R.id.home_bottom_item -> {navController.popBackStack();
             navController.navigate(R.id.home_bottom_item)
         }
    
于 2022-02-14T17:54:27.767 回答