Mam aktywność z podwójnym okienkiem: lista elementów menu po lewej stronie (fragment M) i szczegóły aktualnie wybranego elementu po prawej stronie (fragment D).Android onConfigurationChanged: jak zapisywać i przywracać stos fragmentów?
Gdy użytkownik wybierze element fragmentu D, D fragment zostanie zastąpiony innym fragmencie (nazwijmy go D1). Gdy użytkownik wybierze element w fragmencie D1, fragment D1 zostanie zastąpiony innym fragmentem (nazwijmy go D2) i tak dalej. Oczywiście, gdy użytkownik naciśnie przycisk powrotu, może wrócić do historii fragmentów: D2-> D1-> D.
Mój problem: w jaki sposób mogę zapisać i przywrócić pełną fragment pleców stos momencie zmiany konfiguracji (w szczególności na orientację ekranu)?
Wydaje się bardzo dziwne mi się, że nikt inny nie miał tego problemu wcześniej, ale nie mogę znaleźć nic na ten temat w trakcie moich poszukiwań w Google i przepełnienie stosu. Jeśli przegapiłem jakiś odpowiedni wpis, proszę do mnie go skierować.
Wiem, że mogę po prostu dodać atrybut android:configChanges="orientation|screenSize"
do mojej aktywności, aby uniknąć rekreacji, ale po prostu nie mogę tego zrobić.
Powodem, dla którego nie mogę tego zrobić, jest to, że używam Action Bar Sherlock (wersja 4) w celu zapewnienia kompatybilności wstecznej, a składnik ten wymaga aktywności rekreacyjnej, aby zachowywać się poprawnie po zmianie konfiguracji, AFAIK.
Jeśli istnieje inna droga do odtworzenia składnika Action Bar Sherlock bez zniszczenia i ponownego tworzenia aktywność proszę dać mi znać.
Z góry dziękuję.
@ Iarham1 dzięki za odpowiedź, ale niestety, ABS 4 nadal ma pewne problemy w niektórych wersjach systemu operacyjnego (np 2.3.7), gdy android: configChanges = „orientacja” jest ustawiony, jak opisano w [emisyjnej # 279] (https://github.com/JakeWharton/ActionBarSherlock/issues/279#issuecomment-4934511), więc nie jest to obecnie możliwe rozwiązanie. Mam nadzieję, że Jake Wharton naprawi go w najbliższej przyszłości, ale czy w międzyczasie ty lub ktoś inny wie, jak zapisać i przywrócić pełny stos powrotny fragmentu po zmianie konfiguracji? Lub alternatywnie jak poprawić kod ABS, aby programowo odtworzyć tylko ABS przy zmianie konfiguracji? – Luke