Ich bin neu in Android. Ich möchte eine App mit Tab-Format erstellen. Ich habe viele Dokumente gefunden, in denen Activity
verwendet wurde. Auch in vielen Fällen haben FragmentActivity
verwendet. Ich bin mir nicht sicher, welcher Anfang besser ist. Bitte schlagen Sie mir vor, sollte ich Activity
oder FragmentActivity
verwenden, um die Entwicklung im Tab-Format zu starten?Android - Aktivität vs FragmentActivity?
Antwort
ianhanniballake hat Recht. Sie können alle Funktionen von Activity
von FragmentActivity
erhalten. In der Tat, FragmentActivity
has more functionality).
Mit FragmentActivity
können Sie problemlos tab and swap
formatieren. Für jede Registerkarte können Sie verschiedene (Fragments
sind wiederverwendbar) verwenden. Also für alle FragmentActivity
können Sie die gleiche Fragment
wiederverwenden.
Immer noch können Sie Activity
für einzelne Seiten wie etwas auflisten und bearbeiten Element der Liste auf der nächsten Seite.
Denken Sie auch daran, Activity
zu verwenden, wenn Sie android.app.Fragment
verwenden; Verwenden Sie FragmentActivity
, wenn Sie android.support.v4.app.Fragment
verwenden. Schließen Sie niemals eine android.support.v4.app.Fragment
an eine android.app.Activity
an, da dies eine Ausnahme auslöst.
Wenn Sie den Eclipse-Assistenten "Neues Android-Projekt" in einem aktuellen ADT-Paket verwenden, werden automatisch Registerkarten als Fragmente implementiert. Dies macht die Umstellung Ihrer Anwendung auf das Tablet-Format in Zukunft wesentlich einfacher.
Für einfache Einzelbildschirm-Layouts können Sie immer noch Activity
verwenden.
FragmentActivity
gibt Ihnen die gesamte Funktionalität von Activity
sowie die Fähigkeit Fragments die in vielen Fällen sehr nützlich sind, zu verwenden, insbesondere wenn sie mit dem ActionBar arbeiten, die der beste Weg ist, Tabs in Android zu verwenden.
Wenn Sie nur Targeting Honeycomb (v11) oder mehr Geräte sind, dann können Sie Activity
verwenden und die nativen Fragmente in v11 eingeführt, ohne Frage. FragmentActivity
wurde speziell als Teil der Support Library gebaut, um einige dieser nützlichen Features (wie zB Fragmente) zurück auf ältere Geräte zu portieren.
Ich sollte auch beachten, dass Sie wahrscheinlich die Backward Compatibility - Implementing Tabs Ausbildung sehr hilfreich für die Zukunft finden.
@ A - C - Ich habe meine Antwort bearbeitet - Sie haben Recht, dass API 11+ Geräte native Fragmente und die normale Aktivitätsklasse verwenden können. – ianhanniballake
Ich werde die Behauptung herausfordern, dass die normale Aktivitätsklasse als Fragment in API11 + verwendet werden kann. Dies scheint sich in KitKat geändert zu haben. Siehe https://android.googlesource.com/platform/frameworks/base.git/+/kitkat-mr1-release/core/java/android/app/Fragment.java#584 – cmarcelk
@cmarcelk - nicht sicher, was "normal" Die Aktivitätsklasse kann als Fragment verwendet werden. Das bedeutet, dass "android.app.Activity" mit "android.app.Fragment" funktioniert, und nicht, dass sie austauschbar sind. – ianhanniballake
FYI, ich habe hier einige gute Diskussionen über Fragment Android in einer anderen Sprache gefunden [Fragment trong Android] (http://www.umbalaaz.com/threads/cach-su-dung-fragment-trong-android).336 /) – UmbalaAZ
ABER siehe @ ianhanniballake's Antwort: * es sei denn, Targeting-APIs sind älter als API 11 *, Sie können 'Activity' anstelle von' FragmentActivity' verwenden und haben immer noch Zugriff auf Fragmente; * diese * Antwort sagt das nicht ganz (obwohl der letzte Absatz das impliziert). – ToolmakerSteve
Wie wir wissen, haben wir meistens eine BaseActivity in unserem Projekt, und alle anderen Aktivitäten werden es erweitern. Aber wenn wir zu FragmentActivity kommen, können wir es nicht tun. Daher verwende ich FragmentAktivität auch im Falle von Tab nicht. –