Android onConfigurationChanged: как сохранить и восстановить задний стек фрагментов?

У меня есть действие с двойной панелью: список пунктов меню слева (фрагмент M) и сведения о выбранном в данный момент элементе справа (фрагмент D ).

Когда пользователь выбирает элемент во фрагменте D, фрагмент D заменяется другим фрагментом (назовем его D1). Когда пользователь выбирает элемент во фрагменте D1, фрагмент D1 заменяется другим фрагментом (назовем его D2) и так далее. Конечно, когда пользователь нажимает кнопку «Назад», он может вернуться в историю фрагментов: D2->D1->D.

Моя проблема: как сохранить и восстановить полный стек фрагментов при изменении конфигурации (в частности, при изменении ориентации экрана)?

Мне кажется очень странным, что раньше ни у кого не было этой проблемы, но я не нашел ничего по этому поводу во время моих поисков в Google и Stack Overflow. Если я пропустил какой-либо соответствующий пост, пожалуйста, направьте меня на него.

Я знаю, что могу просто добавить атрибут android:configChanges="orientation|screenSize"к своей активности, чтобы избежать воссоздания активности, но я просто не могу этого сделать.

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

Если есть другой способ воссоздать компонент Action Bar Sherlock без уничтожения и повторного создания действия, сообщите мне об этом.

Заранее спасибо.

8
задан Luke 3 April 2012 в 18:45
поделиться