Я пытаюсь показать / скрыть фрагмент. В большинстве случаев он работает нормально, но очень редко я получаю cra sh java .lang.IllegalStateException: не удается отобразить фрагмент, присоединенный к другому FragmentManager.
У меня есть функция для отображения / скрытия фрагментов в деятельности.
private var previousFragment: Fragment? = null
private fun replaceFragment(fragment: Fragment) {
val backStateName = fragment.javaClass.name
val fragmentManager = supportFragmentManager
val fragmentTransaction = fragmentManager.beginTransaction()
if (!fragment.isAdded) {
if (fragmentManager.findFragmentByTag(backStateName) == null) {
fragmentTransaction
.add(R.id.fragmentContainerView, fragment, backStateName)
}
}
if (previousFragment != null)
fragmentTransaction.hide(previousFragment!!)
fragmentTransaction.show(fragment)
fragmentTransaction.commitAllowingStateLoss()
previousFragment = fragment
}
Что здесь не так?