Очистить фрагмент Backstack сразу после транзакции - PullRequest
0 голосов
/ 06 мая 2019

У меня есть Activity с кнопкой отмены, которая отправляет людей назад, начиная со Fragment:

cancelButton.setOnClickListener{
            supportFragmentManager.beginTransaction().replace(R.id.fragment_holder,StartFragment.newInstance()).commit()
    }

Я хотел бы очистить весь Fragment backstack при этом запуске Fragmentвозвращается в.Я пытаюсь сделать это в методе onStart фрагмента:

 while (activity!!.supportFragmentManager!!.backStackEntryCount > 0) {
            activity?.supportFragmentManager?.popBackStackImmediate()
        }

При этом выдается общая ошибка java.lang.IllegalStateException: FragmentManager is already executing transactions при нажатии кнопки отмены, но даже после прочтения о проблемах других людей я все еще могу 't выяснить, как эти транзакции работают и что происходит, чтобы вызвать эту ошибку.Фрагменты содержатся в FrameLayout.

1 Ответ

1 голос
/ 06 мая 2019

после замены и перед фиксацией выполните операцию pop, и она должна работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...