交易后立即清除片段栈

时间:2019-05-06 16:35:53

标签: android android-fragments

我有一个带有取消按钮的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中。

1 个答案:

答案 0 :(得分:1)

在替换之后和提交之前,执行弹出操作,它应该可以工作。