Middle
Hogyan adhatunk hozzá szinkron vagy aszinkron fragmenst?
sobes.tech MI
Válasz az MI-től
Для добавления фрагмента синхронно используется commit(). Транзакция менеджера фрагментов выполняется сразу.
Для добавления фрагмента асинхронно используется commitAllowingStateLoss(). Это может привести к потере состояния, если перед выполнением транзакции активность будет уничтожена. Альтернативно, можно использовать commit() с комбинацией с executePendingTransactions(), чтобы выполнить транзакцию сразу после вызова commit().
// Синхронное добавление
supportFragmentManager
.beginTransaction()
.add(R.id.fragment_container, yourFragment)
.commit()
// Асинхронное добавление (с возможностью потери состояния)
supportFragmentManager
.beginTransaction()
.add(R.id.fragment_container, yourFragment)
.commitAllowingStateLoss()
// Асинхронное добавление с немедленным выполнением
supportFragmentManager
.beginTransaction()
.add(R.id.fragment_container, yourFragment)
.commit()
supportFragmentManager.executePendingTransactions()