Замена ActivityGroup на Фрагменты, Действия и пользовательский задний стек

1

Кажется, я не могу найти правильный способ перехода от ActivityGroup. Я видел Separate Back Stack для каждой вкладки в Android с помощью фрагментов

Возьмите следующее:

  • Приложение с 4 вкладками
  • Каждая вкладка должна иметь свой собственный задний стек (аналогично поведению iOS, да)
  • Приложение может быть настроено для таблеток, поэтому задний стек должен содержать действия

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

Я не могу найти способ обойти это, кроме как продолжать использовать ActivityGroup.

Благодарю!

EDIT 1: конкретный пример.

Handheld:

 TAB 1 -> Activity 1A (Fragment 1A) 
       -> Activity 1B (Fragment 1B)  
       -> Activity 1C (Fragment 1C)

Таблетка:

 TAB 1 -> Activity 1A (Fragment 1A and 1B)
       -> Activity 1C (Fragment 1C)

@beyerss Я не думаю, что могу последовательно полагаться на FragmentTransactions. Я могу добавить несколько фрагментов в транзакцию, как вы упомянули, но макет действия может быть непротиворечивым. Поэтому я все еще вижу необходимость в ActivityGroups.

Теги:
android-fragments
tabs
android-tabhost

1 ответ

1
Лучший ответ

Есть ли причина, по которой вы не можете использовать FragmentTransaction, которое можно добавить в задний стек? Если на экране есть три фрагмента, и все они меняются в одно и то же время, для этого потребуется три FragmentTransactions, но фрагменты не будут вложенными, поэтому они должны работать.

Чтобы каждая вкладка имела собственный задний стек, вам может потребоваться умение управлять ею самостоятельно для каждой вкладки. т.е. использовать массив каждого FragmentTransaction, который помещается в задний стек, и если пользователь переключает вкладки, удаляет все сохраненные FragmentTransactions (но все равно отслеживает их), а затем, когда пользователь возвращается на вкладку, добавляет их обратно на спину стек в том же порядке.

  • 0
    Пожалуйста, смотрите Редактировать 1
  • 0
    На самом деле не нашел лучшего способа сделать это. Тем не менее, мне пришлось бы свернуть свой собственный «задний стек» и разработать набор макетов с организованными фрагментами. Отметить это как лучшее решение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню