我有一个带有取消按钮的Activity
,可将人们送回到
前Fragment
:
cancelButton.setOnClickListener{
supportFragmentManager.beginTransaction().replace(R.id.fragment_holder,StartFragment.newInstance()).commit()
}
返回起始Fragment
后,我想清除整个Fragment
后退栈。我正在尝试在Fragment的onStart方法中执行此操作:
while (activity!!.supportFragmentManager!!.backStackEntryCount > 0) {
activity?.supportFragmentManager?.popBackStackImmediate()
}
执行此操作会在按下“取消”按钮时引发常见的java.lang.IllegalStateException: FragmentManager is already executing transactions
错误,但是即使在了解了其他人的问题之后,我仍然不知道这些事务如何工作以及导致该错误的原因。这些片段包含在FrameLayout中。
答案 0 :(得分:1)
在替换之后和提交之前,执行弹出操作,它应该可以工作。