Fragment backStackEntryCount总是返回0



我在活动中使用的代码:

private fun addFragmentToActivity(fragment: Fragment?) {
if (fragment == null) return
val ft = supportFragmentManager.beginTransaction()
ft.replace(R.id.container, fragment)
ft.addToBackStack(null)
ft.commit()
checkForBackStack()
}
private fun checkForBackStack() {
val fm = supportFragmentManager
if (fm.backStackEntryCount > 0) {
binding.backIV.visible()
} else {
binding.backIV.gone()
}
}

我想基于backStackEntryCount设置后退按钮的可见性,但它总是返回0。我做错了什么吗?

在条目计数检查前添加fm.executePendingTransactions():

private fun addFragmentToActivity(fragment: Fragment?) {
if (fragment == null) return
val ft = supportFragmentManager.beginTransaction()
ft.replace(R.id.container, fragment)
ft.addToBackStack(null)
ft.commit()
fm.executePendingTransactions()
checkForBackStack()
}

最新更新