16

Czy istnieją jakieś wzorce postępowania z przejściami UI w działaniach Android kontra fragmenty? Obecnie szukam interfejsu użytkownika, który ma najwyżej 3 kolumny w krajobrazie. Chciałbym, aby interfejs użytkownika zaczynał się od 1 kolumny na całej powierzchni ekranu, a następnie po wybraniu czegoś, co przeniesiemy w drugiej kolumnie, a następnie po kliknięciu czegoś w drugim przejściu w trzecim na tabletach i telefonach i zaniku pierwszego. kolumna na telefony. Zastanawiam się, kiedy powinienem to zrobić jako przejście na aktywność i kiedy powinienem użyć fragmentów z widokami, które się pojawiają. O ile czytałem fragmenty można przenieść do innych działań, więc moim wyborem jest albo działanie Działania ze statycznymi układami kolumn, które następnie przechodzą z fragmentami z nimi lub mają jedną Aktywność ze wszystkimi 3 kolumnami, a Aktywność zarządza Wyglądem Paprochy. Oba podejścia mogłyby zadziałać, ale interesowałem się zaletami i wadami pod tylu kątów dla obu rozwiązań.Sygnatury użycia przejścia aktywności a fragmentów dynamicznych

Istnieją dwa pytania podobne do tego, co pytam, ale nie całkiem odpowiedzieć kopalnia

Odpowiedz

12

Fragmenty mogą wydawać się bardziej kodowane z góry (ponieważ wstawiasz widok w fragmencie i fragment w działaniu, a nie tylko widok w działaniu), ale świetnie spisują się w oszczędzaniu bóle głowy w takiej właśnie sytuacji - Zdecydowanie idź z Fragmentami. Nawet obsługują przejścia dla ciebie.

Mamy przykładowy kod o nazwie "Galeria Honeycomb", można spojrzeć na here, który ma układ z dwiema kolumnami plusa, oraz możliwość pokazania/ukrycia skrajnej lewej kolumny. To powinno dać ci dobry początek, zastanawiając się, jak wykonać układ wielu fragmentów i pokazać/ukryć je.

FYI, jeden ważny kompromis w używaniu wielu fragmentów w działaniu, a nie w wielu działaniach, polega na tym, że fragmenty nie reagują bezpośrednio na intencje - na przykład, jeśli korzystałeś z aplikacji do robienia notatek, w której "Wyświetl notatkę" strona była działaniem, a Ty zmieniłeś ją tak, aby w głównym działaniu znajdował się fragment "notki widoku", musisz ustawić go tak, aby główne działanie otrzymało identyfikator notatki i akcję notatki (utwórz, wyświetl , edytuj, cokolwiek) w intencji, w przeciwieństwie do posiadania tylko "notatki widoku" aktywności, która otrzyma identyfikator notatki w intencji. Główna aktywność musiałaby wtedy odpowiednio ustawić fragmenty na stronie. Nie jest to wielka sprawa, ale jeśli zewnętrzna dostępność różnych części aplikacji za pomocą funkcji Intent jest ważna, może być łatwiej przerwać twoją aplikację na kilka działań, a także użyć fragmentów do reprezentowania poszczególnych składników.

+0

Dzięki Alexander, że jest dobrym wskaźnikiem, faktycznie zapomniałem o tej przykładowej aplikacji. Dla mnie to mniej o Activites vs Fragments i więcej o tym, kiedy użyć jednej Działalności zawierającej Fragmenty statyczne i kiedy dynamicznie ładować Fragmenty. Myślę, że jednym z dobrych zarysów jest mechanizm Intent. Jeśli chcesz, aby ekran można było adresować za pomocą intencji, musisz mieć go w swojej własnej aktywności. Czy możesz wymyślić inne wzory? Czy aplikacje Ice Cream Sandwich Core będą miały w sobie dobre wzorce, z których można korzystać, aby nauczyć się jak najlepiej korzystać z Fragmentów? – AGrunewald

+1

W ostatnim laboratorium Dev Honeycomb dla Androida mieliśmy jednego dewelopera mówiącego "co zrobi gmail". Podczas gdy to, co działa w Twojej aplikacji, jest zawsze najważniejsze, podnoszą oni dobry punkt w tym, że aplikacja Gmaila (zarówno tablet, jak i telefon) jest bardzo dobrym referencją pod względem dobrego wykorzystania fragmentów i aktualizowania zarówno elementów paska czynności, jak i widocznych fragmentów na podstawie kontekstu (np. elementy paska akcji zmieniają się w zależności od tego, czy czytasz wiadomość e-mail, piszesz ją, czy przeglądasz listę e-maili). W Honeycomb, Youtube i Kontaktach także jest niesamowita. Na ICS, nie mogę jeszcze mówić o szczegółach :) –

+0

Dzięki za wspaniałą aktualizację Alexander. Z niecierpliwością czekam na ICS Open Source Drop, aby rzucić okiem na kod. Wiem, że wiele Google Apps nie jest uwzględnionych, ale uważam, że wciąż jest wystarczająco dużo podstawowych aplikacji w drzewie Open Source, aby się wiele nauczyć. – AGrunewald

1

Opierając się na stronie The Android 3.0 Fragments API, aktywność jest samodzielny natomiast fragment może być choćby mini-Activity, który musi być hostowany w ramach prawdziwej Aktywności.

Mówi się, że wprowadzenie API Fragment dało programistom android możliwość zaadresowania wielu twórców punktów bólu za pomocą działań, więc w Androidzie 3.0 narzędzie Fragment wykracza daleko poza dostosowanie do różnych ekranów :

Myślę, że korzystanie z pojedynczego działania dla aplikacji niekoniecznie jest złą decyzją, tylko kwestią stylu. Jest to decyzja, którą powinieneś podjąć na podstawie tego, co próbujesz osiągnąć.

Jednak pojawienie się Fragmentów było postrzegane jako rozwiązanie rzeczywistych problemów. Opierając się na tym, polecam napisanie kodu "Proof of Concept" i ocenę wyników. W tym czasie, to może być jedyną próbę prawdziwego świata, które będzie miało znaczenia

+0

Dzięki za komentarz Noah, zgadzam się z tym, co mówisz, niestety nie odpowiada na moje pytanie, ponieważ szukałem wzorów. Wygląda jednak na to, że wciąż dzielimy się nowymi fragmentami z Fragments. – AGrunewald

1

Wpisz Inne pełnym ekranie

Zastosowanie fragmenty na części albo bez ekranu (ale nie usługi)

w moim głównym aplikacji W poziomym widoku przewijania znajdują się karty na ekranie, które chciałem zachować w wielu sekcjach aplikacji. Sekcje obejmują: Wiadomości, zdjęcia, filmy wideo, harmonogram itd. Wszystkie zadania, które można uaktywnić przez jednego użytkownika.

Główną aplikacją zawierającą wszystko jest aplikacja, a zakładki to tylko widok wywołujący Menedżera fragmentów.

Używam jednak działań dla skomplikowanych czynności użytkownika, znajdujących się głębiej w aplikacji. Na przykład. jeśli ktoś odtwarza wideo, wyświetla stronę szczegółów przedmiotu oraz sekcje ze zdjęciami/pokazami slajdów, ponieważ wszystkie są elementami pełnoekranowymi.

Nie ma potrzeby, aby pokazywać/ukrywać fragmenty podczas przechodzenia do trybu pełnoekranowego, ponieważ stos działań obsługuje wszystko, co chcesz zrobić szybko i łatwo, i zachowuje minimalny i czysty kod.

Mam więc Aktywność -> fragmenty domów -> uruchamianie pełnoekranowe Działania dla poleceń specjalnych.

+0

Dzięki za odpowiedź HaMMeReD Wiedziałem już tyle :-) Pytanie było bardziej ukierunkowane na czas przejścia między działaniami, aby zmienić ekran i kiedy po prostu zmienić dynamiczne fragmenty. – AGrunewald

+0

Używaj czynności za każdym razem, gdy jest to komponent pełnoekranowy. Możesz ponownie użyć fragmentów w wielu działaniach. – HaMMeReD

+0

W rzeczywistości to, co sprawia, że ​​komponent pełnoekranowy na telefonie jest komponentem na części ekranu na tablecie, więc sensowne jest umieszczanie fragmentów "pełnoekranowych" w fragmentach zamiast w działaniach. –

Powiązane problemy