(Kotlin)Fragment Back 堆栈句柄
Posted
技术标签:
【中文标题】(Kotlin)Fragment Back 堆栈句柄【英文标题】:(Kotlin)Fragment Back stack handle 【发布时间】:2022-01-22 13:05:04 【问题描述】:当我使用 backStackEntryCount > 1. popbackstack() 时,它不会导航到底部导航的任何片段
我需要知道的是,如何只堆叠一次片段,这样我就可以按一次后退按钮,这将导航到 Activity。
private fun navBottomClick()
bottomNavigationView?.setOnItemSelectedListener
when (it.itemId)
R.id.workout ->
var fragmentTransaction: FragmentTransaction =
supportFragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.container, WorkoutFragment(), "WORKOUT")
fragmentTransaction.addToBackStack("WORKOUT")
fragmentTransaction.commit()
R.id.health ->
var fragmentTransaction: FragmentTransaction =
supportFragmentManager.beginTransaction()
fragmentTransaction.replace(R.id.container, HealthyFoodFragment(), "HealthFood")
fragmentTransaction.addToBackStack("HealthFood")
fragmentTransaction.commit()
true
【问题讨论】:
【参考方案1】:没有 backStack 你可以试试这个
override fun onBackPressed()
if (binding.bottomNavigation.selectedItemId == R.id.home)
moveTaskToBack(true)
else
binding.bottomNavigation.selectedItemId = R.id.home
val homeFragment = HomeFragment.newInstance()
openFragment(homeFragment)
【讨论】:
你能告诉我绑定=这里是什么吗? 绑定只是数据绑定,您无需绑定即可执行此操作。只需使用您的 bottomNavigation id 而不是 binding.bottomNavigation ty bro luv ya...【参考方案2】:尝试打印日志supportFragmentManager.backStackEntryCount
。
我认为条件是supportFragmentManager.backStackEntryCount > 0
。
【讨论】:
以上是关于(Kotlin)Fragment Back 堆栈句柄的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin:如何从 Fragment 调用 JobIntentService?
如何从 Back Press 的 Activity 中返回 Fragment