android-fragments 带有导航组件的Android底部导航栏上的重新选择操作

3lxsmp7m  于 2022-11-13  发布在  Android
关注(0)|答案(1)|浏览(150)

我有一个底部导航栏,它与navHost连接,并使用以下代码进行配置:

Val navHostFragment =supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment
    val navController = navHostFragment.navController

    val bottomNavBar = findViewById<BottomNavigationView>(R.id.bottomBar)
    setupWithNavController(bottomNavBar, navController)

当我切换到第二个片段(通过点击底部导航栏中的第二个图标),然后我导航到链接到第二个片段的另一个片段时,我现在有4个片段。当我点击后退按钮时,我切换到第二个片段。
到目前为止一切正常。

**问题是:**在底部导航栏中重新选择同一图标时,我想从打开的片段返回到第二个片段

chy5wohz

chy5wohz1#

我在这个帖子的帮助下解决了我的问题。如果有人也面临同样的问题,请查看这个:
Android clear backstack after reselecting Bottom Navigation tab
我已经集成了一个更好的解决方案,让您有动画时,也从一个片段切换到另一个。

val id = navController.currentDestination?.id
        when (id) {
            R.id.detailedTransactionAnalysis -> {
                navController.navigate(R.id.action_detailedTransactionAnalysis_to_MainScreen)
            }
            R.id.detailedCategoryTransactionsFragment -> {
                navController.navigate(R.id.action_detailedCategoryTransactionsFragment_to_MainScreen)
            }
            R.id.addTransaction -> {
                navController.navigate(R.id.action_addTransaction_to_Stats)
            }
        }
        navController.popBackStack(reselectedDestinationId, inclusive = false)

它工作得很好。

相关问题