【问题标题】:How go to another Tab, but keep the previous tab如何转到另一个选项卡,但保留上一个选项卡
【发布时间】:2021-10-26 21:18:31
【问题描述】:

我使用的是底部导航视图。例如:

TAB_1 屏幕_1 -> 屏幕_2

TAB_2 屏幕3

TAB_3 屏幕_4

我想从 Screen_2 转到 Screen_3,然后我回到 TAB_1,我想看到 Screen_2

我该怎么做?

在我的活动中

 val bottomNavigate = findViewById<BottomNavigationView>(R.id.mainButtonNavigation)
 val navController =
        (supportFragmentManager.findFragmentById(R.id.containerGuestView) as NavHostFragment).navController
    NavigationUI.setupWithNavController(bottomNavigate, navController)

在 Screen_2 中,当我点击转到 Screen_3 时

findNavController().navigate(R.id.action_global_tournamentTableGuestFragment)

【问题讨论】:

  • 您使用的是什么版本的导航? Navigation 2.4 根据multiple back stacks blog post 自动执行此操作。
  • 我只使用导航版本 = "2.4.0-alpha10" 没有 alpha 版本片段

标签: android kotlin android-architecture-navigation


【解决方案1】:

我在我的 Activity 中添加了这个并且它起作用了

    val bottomNavigate = findViewById<BottomNavigationView>(R.id.mainButtonNavigation)
    val navController =
        (supportFragmentManager.findFragmentById(R.id.containerGuestView) as NavHostFragment).navController
    NavigationUI.setupWithNavController(bottomNavigate, navController)
    bottomNavigate.setOnItemSelectedListener {
        when (it.itemId) {
            R.id.graph_guest_leagues -> { //This is TAB_1 in Example
                navController.apply {
                    navigate(R.id.graph_guest_leagues)
                    navigate(R.id.action_leaguesFragment_to_divisionsFragment) //This is Screen_2 in Example
                }
            }
            R.id.tournamentTableGuestFragment -> navController.navigate(it.itemId)
            R.id.matchesGuestFragment -> navController.navigate(it.itemId)
            R.id.favoriteFragment -> navController.navigate(it.itemId)
        }
        true
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-21
    • 2020-11-22
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2020-04-13
    • 2018-10-24
    • 2013-12-19
    相关资源
    最近更新 更多