TGViewer
Android Interview Review Android Interview Review @androidsobes · 3.51K subscribers
Post #330 12.1K
Важен ли порядок, в котором добавляются операции в FragmentTransaction?

Документация описывает два случая, в которых порядок важен:

1. Метод commit() должен вызываться последним.

2. Если несколько фрагментов добавляются в один контейнер, то порядок добавления определяет порядок в котором фрагменты отрисовываются в иерархии view.

Есть еще третий случай. Если метод addToBackStack(String name) вызывается несколько раз на одной транзакции, то транзакция добавляется в бэкстэк один раз с тегом, который передается в последнем вызове метода.

Пример:

supportFragmentManager.beginTransaction()
.add(R.id.fragmentContainer, Fragment1())
.addToBackStack("add1")
.add(R.id.fragmentContainer, Fragment2())
.addToBackStack("add2")
.commit()


Создается одна транзакция с тегом add2, которая добавляет сразу два фрагмента. При нажатии кнопки Back оба фрагмента будут удалены.

Поведение нескольких addToBackStack() не задокументировано и может различаться на разных версиях ОС, так что не забудьте на собеседовании сказать, что вы бы так никогда делать не стали.

#Fragment
More from @androidsobes
  1. Sep 15, 2022Метод FragmentManager.commit() – синхронный или нет? – Асинхронный. Это значит, что транза…
  2. Sep 13, 2022Чем отличается tag в методах add() и addToBackStack()? Tag в методе add() присваивается фр…
  3. Sep 6, 2022Расскажите про способы добавления и переключения фрагментов. Как работать с бэкстэком? Для…
  4. Sep 2, 2022Fragment Fragment используется для отображения части UI на экране. Фрагмент создается внут…
  5. Sep 1, 2022Нужно ли думать о сохранении состояния, если приложение поддерживает только портретную ори…
  6. Aug 29, 2022Activity: Как пережить поворот экрана? При повороте экрана активити уничтожается и создает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →