Różnica między aktywnością a aktywnością fragmentu


Odpowiedzi:


316

A FragmentActivityjest podklasą, Activityktóra została zbudowana dla pakietu wsparcia Androida .

FragmentActivityKlasa dodaje kilka nowych metod w celu zapewnienia zgodności ze starszymi wersjami Androida, ale poza tym, tak naprawdę nie ma wielkiej różnicy między nimi. Tylko pamiętaj, aby zmienić wszystkie połączenia getLoaderManager()i getFragmentManager()na getSupportLoaderManager()i getSupportFragmentManager()odpowiednio.


4
Hej, nie zmieniłem wywołań funkcji getSupportLoaderManager () i getSupportFragmentManager () .. ale nadal działa dobrze.
Świeżak

31
Właśnie dlatego jest tak niebezpieczny: P. FragmentActivitydziedziczy getLoaderManageri getFragmentManagermetody z Activityi w wyniku kompilator nie będzie narzekać. Możliwe, że importujesz również niepoprawne LoaderManageri FragmentManagerklasy. Upewnij się, że importujesz te klasy z pakietu wsparcia ( android.support.v4.app), a nie zestawu SDK systemu Android ( android.app).
Alex Lockwood

1
Czy możemy powiedzieć, że jeśli chcemy używać fragmentów dla wersji Android 2.x, musimy użyć FragmentActivity i dla wersji, która obsługuje fragmenty, musimy użyć Activity.
Świeżak

55
Myślę, że to, co mówisz, jest poprawne. Ale żeby być w 100% jasne ... użyj, Activityjeśli używasz android.app.Fragment; użyj, FragmentActivityjeśli używasz android.support.v4.app.Fragment. Nigdy nie dołączaj a android.support.v4.app.Fragmentdo android.app.Activity, ponieważ spowoduje to zgłoszenie wyjątku.
Alex Lockwood

13
Najpierw spróbuj tego samouczka (jak korzystać Fragmentsz aplikacji). Następnie przejdź do tego samouczka (jak korzystać ze Fragments z pakietu wsparcia). Dokumentacja na stronie deweloperów jest warta czytania, jak również.
Alex Lockwood,

4

FragmentActivityjest częścią biblioteki wsparcia , podczas gdy Activityjest domyślną klasą frameworka. Są funkcjonalnie równoważne.

Zawsze powinieneś używać FragmentActivityi android.support.v4.app.Fragmentzamiast domyślnych ustawień platformy Activityi android.app.Fragmentklas. Korzystanie z domyślnych ustawień platformy oznacza, że ​​polegasz na jakiejkolwiek implementacji fragmentów użytej w urządzeniu, na którym pracujesz. Często mają one wiele lat i zawierają błędy, które zostały naprawione w bibliotece wsparcia.


1
Uwaga: minSdkVersionbiblioteki wsparcia jest 14 od wersji 26.xx
Eugen Pechanec
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.