Ich habe eine Frage zu den Android-Unterstützungsbibliotheken, Fragmenten und als spezifisches Beispiel zur ViewPager
Klasse. Ich beabsichtige, eine App mit ähnlichen Funktionen wie auf der Android Developer-Website ( http://developer.android.com/training/animation/screen-slide.html oder http://developer.android.com/) zu erstellen. training / implementierungsnavigation / lateral.html ). Bei der Betrachtung ihres Codes habe ich festgestellt, dass sie die android.support.v4.app
Bibliothek verwenden, die nach meinen Recherchen der einzige Weg ist, auf die ViewPager
Klasse zuzugreifen .
In meiner Situation habe ich kein Interesse an Abwärtskompatibilität. Die minimale API-Stufe beträgt 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-Entwickler-Website verlinkt habe - nur zwischen drei Registerkarten mit jeweils Inhalten.
Alle Artikel / Beiträge / Antworten, die ich gelesen habe, scheinen die v4-Unterstützungsbibliothek stark zu bevorzugen . Nun zu meinen, wenn auch langatmigen Fragen:
Was ist der beste Weg, um meine Anwendung zu strukturieren - mit
android.support.v4.app
und damit SupportFragments oder mit den darin enthaltenen Fragmentenandroid.app
- und warum?Wenn Fragmente von
android.app
der richtige Weg sind, wie geht man dann am besten vorViewPagers
?Wenn SupportFragments für die Aufgabe am besten geeignet sind, würde ich schätzen, dass sie dieselbe Funktionalität wie die anderen besitzen. Was ist also der Zweck, sie überhaupt im Inneren zu haben
android.app
?
Hoffentlich kann mir jemand mit einem klareren Verständnis ein bisschen Klarheit verschaffen, weil ich verblüfft bin ...
Fragments
wenn Sie die verwenden, dieViewPager
Sie benötigen, um die Support-Bibliothek zu verwendenSupportFragment
SupportFragment
ist keine Klasse im Android SDK ...SupportFragment
, ich beziehe mich nur auf dieFragment
Klasse, die in verfügbar istandroid.support.v4.app
.ViewPager
In gibtandroid.app
.Antworten:
Sie können
ViewPager
mit nativen Fragmenten aus demandroid.app
Paket mit den Adaptern aus dem android.support.v13.app- Paket verwenden. Sie müssen dafür das v13-Support-Jar verwenden.Es gibt zwei Versionen der Adapter, mit
ViewPager
denen gearbeitet wird. Die imv4
Paket enthaltenen sind für Support-Fragmente und die fürv13
native Fragmente vorgesehen.Der Grund, warum es jetzt zwei Fragmentimplementierungen gibt, ist historisch: Fragmente im
android.app
Paket wurden mit Android 3 nur für Tablets eingeführt, und die Unterstützungsbibliothek wurde erstellt, um Fragmente auf Telefone zu bringen, auf denen ältere Versionen ausgeführt werden. Auf Android 4 haben Sie beide.Aus eigener Erfahrung würde ich die Verwendung von Support-Fragmenten empfehlen, auch bei der Entwicklung für Android 4. Hier einige Gründe: Fragment oder Support-Fragment?
quelle
android.app
hat so nichtFragmentPagerAdapter
dann wird es unmöglich, viewpager mit android.app.Fragment zu verwenden? Irgendeine Idee hier? Gibt es eine Option für Old View Pager? Um Fragmente für bestimmte Tabs dynamisch zu verknüpfenandroid.support.v4.app
Paket arbeitet mit Unterstützungsfragmenten, das andereandroid.support.v13.app
mit "normalen" Fragmentenandroid.app.Fragment
Klasse ist seit Android P ( Link ) veraltet , sollte also nurandroid.support.v4.app.Fragment
überall verwendet werden.quelle
Wenn Sie auf API 11+ abzielen, benötigen Sie die Support-Bibliothek nicht [und Ihre tatsächliche apk wird zumindest kleiner sein].
Wenn Sie etwas vor Android 3.x unterstützen möchten, benötigen Sie die Support-Bibliothek.
Fragen Sie das?
quelle
ViewPager
Funktionalität und einer Erklärung, warum diese Lösung die beste ist.