Android (Kotlin) - 导航操作取决于可见的片段视图

Posted

技术标签:

【中文标题】Android (Kotlin) - 导航操作取决于可见的片段视图【英文标题】:Android (Kotlin) - Navigation action dependent on the fragment view that is visible 【发布时间】:2022-01-17 20:17:12 【问题描述】:

我有一个底部导航栏,其中包含三个片段和另外两个片段,通过按特定的 FAB“+”和“-”选择和查看。

我有一个问题,因为导航操作必须知道当前显示的底部导航视图的哪个片段才能运行正确的导航操作。有人有什么建议吗?

【问题讨论】:

【参考方案1】:

如果有人在寻找答案:

您需要从navController获取您当前的目的地

val navHostFragment = supportFragmentManager.findFragmentById(R.id.myNavHostFragment) as NavHostFragment
val navController = navHostFragment.navController
val homeVisibility = navController.currentDestination?.label.toString()
when (homeVisibility)
    "fragment_home" -> findNavController(R.id.myNavHostFragment).navigate(R.id.action_home_to_incomeAdding2)
    "fragment_incomes" -> findNavController(R.id.myNavHostFragment).navigate(R.id.action_incomes_to_incomeAdding2)
    "fragment_expenses" -> findNavController(R.id.myNavHostFragment).navigate(R.id.action_expenses_to_incomeAdding2)
    else -> Toast.makeText(this, "Error, zresetuj aplikację", Toast.LENGTH_LONG).show()

如果有人知道更好的解决方案,请发布

【讨论】:

以上是关于Android (Kotlin) - 导航操作取决于可见的片段视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 popUpToSaveState 和 restoreState 在导航组件 Android Kotlin 中保存和保持状态?

如何隐藏默认片段 actionBar 在 android & kotlin 中创建我们自己的 actionBar

网格布局android / kotlin中单元格的高度和宽度相同

BottomNavigationView+ViewPager+Fragment 底部导航按钮 kotlin版本

BottomNavigationView+ViewPager+Fragment 底部导航按钮 kotlin版本

Kotlin 元编程之 KSP 实战:通过自定义注解配置Compose导航路由