我有三个片段 A、B 和 C。我navHostFragment
在MainActivity
. 所以应用程序使用 kotlin 扩展函数从 A -> B 开始findNavController().navigate...
,然后使用相同的函数从 B 转到 C。到这里为止一切正常。
现在在片段 C 中,我正在使用片段 C 替换不同的元素
activity?.supportFragmentManager
?.beginTransaction()
?.replace(R.id.list_container, someFragment)
?.addToBackStack("some_frag_id")
?.commit()
list_container
替换为someFragment
。在此之后,当我按下物理后退按钮时,Fragment C 弹出,我的应用程序转到 Fragment B,而我期望它恢复的内容被替换,list_container
即替换前的任何内容。
我也在我的MainActivity
override fun onBackPressed() {
val count = supportFragmentManager.backStackEntryCount
if (count == 0) {
super.onBackPressed()
//additional code
}
else {
supportFragmentManager.popBackStack()
}
}
我不确定这里缺少什么。我已经阅读了很多关于 stackoverflow 的解决方案,但没有一个能让我满意。请指导。