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 Activitypodejścia i nawigacji w stylu Facebooka. Podczas wybierania elementów z listy nawigacji aktualizuję pojedynczy Fragmentkontener, aby wyświetlić tę sekcję.
To powiedziawszy, posiadanie singla Activityró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, startActivityForResultale Fragmentsnie ma czegoś takiego, więc kończysz zapisując wartość w Activitygłównym fragmencie edycji, Activityaby sprawdzić, czy dane zostały wybrane i powinny zostać wyświetlone użytkownikowi.
To, co Aravind mówi o przywiązaniu do jednego Activitytypu, jest również prawdą, ale tak naprawdę nie ogranicza. Twoja aktywność byłaby FragmentActivity i tak długo, jak nie potrzebujesz, MapViewnie ma żadnych prawdziwych ograniczeń. Jeśli jednak chcesz wyświetlać mapy, możesz to zrobić, ale musisz albo zmodyfikować bibliotekę zgodności Androida, aby FragmentActivityrozszerzyć MapActivitylub użyć publicznie dostępnych android-support-v4-googlemaps .
Ostatecznie większość deweloperów, których znam, którzy poszli tą samą Activitydrogą, 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 Activitytylko po to, aby osiągnąć szaloną interakcję, którą wymyślą twoi projektanci :)
-- EDYTOWAĆ --
Google w końcu udostępnił MapFragmentbibliotekę 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