web-dev-qa-db-de.com

Android.app Fragmente vs. Android.support.v4.app mit ViewPager?

Ich habe eine Frage zu Android Support Libraries, Fragments und als spezielles Beispiel zur ViewPager -Klasse. Ich beabsichtige, eine App mit einer ähnlichen Funktionalität wie das bereitgestellte Beispiel zu erstellen auf der Android Entwickler-Website ( http://developer.Android.com/training/animation/screen-slide.html oder http://developer.Android.com/training/implementing-navigation/lateral.html ). Ich habe in ihrem Code festgestellt, dass sie die Bibliothek Android.support.v4.app verwenden. Dies ist aus meiner Forschung die einzige Möglichkeit, auf die Klasse ViewPager zuzugreifen.

In meiner Situation habe ich kein Interesse an Abwärtskompatibilität. Die minimale API-Stufe ist 14 (Ice Cream Sandwich) und das Build-Ziel ist 4,2 Jelly Bean. In der einfachsten Form funktioniert meine App genauso wie die zweite Demo, die ich auf der Android dev-Website verlinkt habe - wischen Sie einfach zwischen drei Registerkarten mit Inhalten in jeder.

Alle Artikel/Posts/Antworten, die ich gelesen habe, scheinen die v4-Unterstützungsbibliothek stark zu bevorzugen. Nun zu meiner (wenn auch langatmigen) Frage (n):

  1. Wie kann ich meine Anwendung am besten strukturieren - mit Android.support.v4.app Und damit mit SupportFragments oder mit den in Android.app Bereitgestellten Fragmenten - und warum?

  2. Wenn Fragmente aus Android.app Der richtige Weg sind, wie kann man sich dann am besten ViewPagers nähern?

  3. Wenn SupportFragments für die Aufgabe am besten geeignet sind, würde ich schätzen, dass sie die gleiche Funktionalität wie die anderen besitzen. Was ist also der Zweck, sie überhaupt in Android.app Zu haben?

Hoffentlich kann mir jemand mit einem klareren Verständnis ein bisschen Klarheit verschaffen, weil ich verblüfft bin ...

181
jonstaff

Sie können ViewPager mit nativen Fragmenten aus dem Android.app Paket mit den Adaptern aus dem Android.support.v13.app Paket. Sie müssen dafür das v13-Supportglas verwenden.

Es gibt zwei Versionen der Adapter, die mit ViewPager funktionieren, die in v4 -Paket soll mit Support-Fragmenten verwendet werden, die in v13 mit nativen Fragmenten.

Der Grund, warum es jetzt zwei Fragmentimplementierungen gibt, ist historisch: Fragmente im Android.app -Paket wurde mit Android 3 nur für Tablets eingeführt und die Unterstützungsbibliothek wurde erstellt, um Fragmente auf Handys mit älteren Versionen zu bringen. Auf Android= 4 haben Sie beide .

Aus eigener Erfahrung würde ich empfehlen, Support-Fragmente zu verwenden, auch wenn Sie für Android 4. Hier sind einige Gründe: Fragment oder Support-Fragment?

183
brillenheini

Android.app.Fragment Klasse ist veraltet seit Android P ( link ), also nur Android.support.v4.app.Fragment sollte überall verwendet werden.

3
Artyom

Wenn Sie auf API 11+ abzielen, benötigen Sie die Unterstützungsbibliothek nicht [und Ihre eigentliche Apk wird zumindest kleiner sein).

Wenn Sie vor Android 3.x) etwas unterstützen möchten, benötigen Sie die Unterstützungsbibliothek.

Ist es das was du fragst?

1
Matt