Що означає addToBackStack (null), за яким слідує коміт ()?
Цитування документів:
Викликаючи addToBackStack (), транзакція заміни зберігається у зворотному стеці, щоб користувач міг повернути транзакцію та повернути попередній фрагмент, натиснувши кнопку Назад.
Якщо до транзакції додати кілька змін (наприклад, інший add () або remove ()) і викликати addToBackStack (), тоді всі зміни, застосовані до виклику коміта (), додаються до заднього стеку як одна транзакція та кнопка Назад переверне їх усіх разом.
Порядок додавання змін до FragmentTransaction не має значення, за винятком:
Ви повинні телефонувати commit()
останнім. Якщо ви додаєте кілька фрагментів до одного контейнера, порядок їх додавання визначає порядок їх появи в ієрархії подання.
Тож вам доведеться здійснити нарешті.
Чому вам потрібно передати нульовий параметр addToBackStack?
Він не повинен бути нульовим, це може бути рядок. Якщо ви не хочете, просто передайте нуль.
загальнодоступний реферат FragmentTransaction addToBackStack (ім'я рядка)
Додано в рівень API 11 Додайте цю транзакцію до заднього стеку. Це означає, що транзакція буде запам'ятовуватися після її вчинення, а також поверне її роботу, коли пізніше вискочить із стека.
Ім'я параметрів Необов’язкове ім’я для цього стану зворотного стеку або нуль.
Щодо:
Здається, цей код марний, оскільки я запустив код без останнього рядка .addToBackStack (null) .commit (), і він працював без проблем
Якщо ви хочете перейти до попереднього фрагмента, додайте його у backstack. Тож це залежить від того, чи хочете ви додати фрагмент до бекстейка.
Як отримати цей фрагмент після додавання таким чином?
Ви вже маєте екземпляр фрагмента firstFragment
. Тож я не знаю, що ви маєте на увазі під тим, щоб отримати фрагмент пізніше.
Більше інформації @
http://developer.android.com/guide/components/fragments.html
http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String)