To zależy od tworzonej aplikacji. Stworzyłem kilka aplikacji, używając obu podejść i nie mogę powiedzieć, że jeden sposób jest zawsze lepszy od drugiego. W najnowszej aplikacji, którą stworzyłem, korzystałem z pojedynczego Activity
podejścia i nawigacji w stylu Facebooka. Podczas wybierania elementów z listy nawigacji aktualizuję pojedynczy Fragment
kontener, aby wyświetlić tę sekcję.
To powiedziawszy, posiadanie singla Activity
również wprowadza wiele zawiłości. Załóżmy, że masz formularz edycji i dla niektórych elementów, które użytkownik musi wybrać lub utworzyć, wymaga przejścia do nowego ekranu. W przypadku działań, które nazwalibyśmy po prostu nowym ekranem, startActivityForResult
ale Fragments
nie ma czegoś takiego, więc kończysz zapisując wartość w Activity
głównym fragmencie edycji, Activity
aby sprawdzić, czy dane zostały wybrane i powinny zostać wyświetlone użytkownikowi.
To, co Aravind mówi o przywiązaniu do jednego Activity
typu, jest również prawdą, ale tak naprawdę nie ogranicza. Twoja aktywność byłaby FragmentActivity i tak długo, jak nie potrzebujesz, MapView
nie ma żadnych prawdziwych ograniczeń. Jeśli jednak chcesz wyświetlać mapy, możesz to zrobić, ale musisz albo zmodyfikować bibliotekę zgodności Androida, aby FragmentActivity
rozszerzyć MapActivity
lub użyć publicznie dostępnych android-support-v4-googlemaps .
Ostatecznie większość deweloperów, których znam, którzy poszli tą samą Activity
drogą, wróciła do wielu działań, aby uprościć swój kod. Jeśli chodzi o interfejs użytkownika, na tablecie czasami utkniesz, używając jednego Activity
tylko po to, aby osiągnąć szaloną interakcję, którą wymyślą twoi projektanci :)
-- EDYTOWAĆ --
Google w końcu udostępnił MapFragment
bibliotekę kompatybilności, więc nie musisz już używać hackowania android-support-v4-googlemaps. Przeczytaj o aktualizacji tutaj: Google Maps Android API v2
- EDYCJA 2 -
Właśnie przeczytałem ten wspaniały post o współczesnym (2017) stanie fragmentów i przypomniałem sobie tę starą odpowiedź. Pomyślałem, że podzielę się: Fragmenty: rozwiązanie wszystkich problemów Androida