TGViewer
Android Developer Android Developer @android_dev_ru · 1.27K subscribers
Post #28 3.34K
Чем отличается tag в методах add() и addToBackStack()?

Tag в методе add() присваивается фрагменту. Fragment.getTag() возвращает этот тег.
Тег фрагмента используется в методе findFragmentByTag().

Tag в методе addToBackStack() это на самом деле не tag, а name. Имя транзакции, которое присваивается объекту BackStackEntry и возвращается методом getName().

Этот вопрос возник на собеседованиях, потому что когда только появились фрагменты было популярно писать такой код:

val tag = "home_fragment"
supportFragmentManager.beginTransaction()
.add(R.id.fragmentContainer, HomeFragment, tag)
.addToBackStack(tag)
.commit();

…

val lastEntryIndex = supportFragmentManager.backStackEntryCount - 1
val tag = supportFragmentManager.getBackStackEntryAt(lastEntryIndex).name
val topFragment = supportFragmentManager.findFragmentByTag(tag)

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

Удобно? Нет! Не надо так делать.
  • 👍 7
  • ❤ 1
More from @android_dev_ru
  1. Oct 18, 2026Фоновая синхронизация запускается несколько раз Экран, вход в аккаунт и восстановление сет…
  2. Oct 17, 2026Клавиатура закрывает кнопку: где искать причину Форма помещается на экран, пока не открыла…
  3. Oct 16, 2026Практика · Android После возвращения пропал фильтр поиска Пользователь выбрал категорию, у…
  4. Jun 28, 2026🖥 Китайский разработчик выложил в открытый доступ целую автомобильную ОС, которая превращ…
  5. Jun 28, 2026✏️ Чек-лист: полный контроль качества Перед релизом или крупным обновлением пройдитесь по…
  6. Jun 27, 2026🎁 pod install --repo-update – надежный способ избежать "кэш-проблем" с CocoaPods Эта кома…
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 →