W przypadku użycia fragmentów w dokumentach systemu Android, gdy aplikacja działa w trybie "podwójnego podglądu", fragment szczegółów jest odtwarzany, gdy aplikacja musi wyświetlać szczegóły dotyczące innego tytułu. FragmentTransaction.replace()
służy do zamiany każdej starej instancji fragmentu szczegółów na nową.OK, aby zaktualizować fragmenty zamiast tworzyć nowe instancje?
Czy to zalecana praktyka? Czy tworzenie nowej instancji interfejsu użytkownika nie jest marnotrawstwem, gdy prawdziwym intencją (gra słów nie jest przeznaczona) jest aktualizacja tego, co pokazuje interfejs użytkownika, a nie sam interfejs. Wydaje mi się, że jedynym powodem tworzenia nowych instancji jest zamiar dodania ich do backstack, aby użytkownik mógł odtworzyć kroki. W przeciwnym razie czy można bezpiecznie zaktualizować fragment bezpośrednio?
W przypadku przykładu oznaczałoby to metodę zgodną z DetailsFragment.setShownIndex()
. Zostanie to nazwane, przekazując nowy indeks tytułowy, zamiast odtwarzać DetailsFragment
.
Załóżmy, że mamy wersję przykładu, w którym jedno działanie zarządza obydwoma fragmentami, ale pokazuje tylko jeden po drugim, zamieniając każdy fragment w razie potrzeby. Czy byłoby dobrze, aby w ramach działania utworzono instancję każdego fragmentu, zachowano odniesienia do każdej z nich, a następnie po prostu dodawałem lub usuwano te dwa wystąpienia z siebie w razie potrzeby?
Jedną z możliwych konsekwencji jest to, że gdy fragment tytułu znajduje się w stanie resumed
(tj. Na "pierwszym planie"), wybór tytułu spowoduje wywołanie do DetailsFragment.setShownIndex()
w czasie, gdy fragment szczegółów jest w stopped
stan.
Dobry pomysł? Kiepski pomysł?
Z góry dziękuję.
byłby bardziej pomocny, gdybyś dostarczył komentarze w języku angielskim. –
Przykro mi, ale jestem włochem. –