Ik heb een vraag over de Android-ondersteuningsbibliotheken, fragmenten en als specifiek voorbeeld de klasse ViewPager
. Het is mijn bedoeling om een app te maken met vergelijkbare functionaliteit als het voorbeeld op de Android Developer-website (http://developer.android.com/training/animation/screen-slide.htmlof http://developer.android.com/training/implementing-navigation/lateral.html). Als ik naar hun code kijk, zie ik dat ze de bibliotheek android.support.v4.app
gebruiken, wat volgens mijn onderzoek de enige manier is om toegang te krijgen tot de klasse ViewPager
.
In mijn situatie heb ik geen interesse in achterwaartse compatibiliteit. Het minimale API-niveau is 14 (Ice Cream Sandwich) en het builddoel is 4.2 Jelly Bean. In zijn eenvoudigste vorm presteert mijn app precies zoals de tweede demo die ik heb gelinkt op de Android-ontwikkelaarswebsite – gewoon vegen tussen drie tabbladen met inhoud in elk.
Alle artikelen/posts/antwoorden die ik heb gelezen, lijken sterk de voorkeur te geven aan de v4-ondersteuningsbibliotheek. Nu mijn, zij het langdradige, vraag(en):
-
Wat is de beste manier om mijn applicatie te structureren – met behulp van
android.support.v4.app
, en daarbij met SupportFragments, of om de fragmenten te gebruiken die inandroid.app
– en waarom? -
Als fragmenten van
android.app
de juiste keuze zijn, wat is dan de optimale manier omViewPagers
te benaderen? -
Als SupportFragments het meest geschikt zijn voor de taak, schat ik dat ze dezelfde functionaliteit hebben als de andere – dus wat is het doel om ze in
android.app
te hebben?
Hopelijk kan iemand met een beter begrip me een beetje opheldering geven, want ik ben verbijsterd…
Antwoord 1, autoriteit 100%
U kunt ViewPager
gebruiken met native fragmenten uit het pakket android.app
met de adapters van android.support.v13.apppakket. Daarvoor moet je de v13 support jar gebruiken.
Er zijn twee versies van de adapters die werken met ViewPager
, die in het v4
-pakket zijn bedoeld om te worden gebruikt met ondersteuningsfragmenten, die in v13
met native fragmenten.
De reden waarom er nu twee fragmentimplementaties zijn, is historisch: fragmenten in het pakket android.app
zijn geïntroduceerd met Android 3 alleen voor tablets en de ondersteuningsbibliotheek is gemaakt om fragmenten naar telefoons die ouder zijn te brengen versies. Op Android 4 heb je beide.
Uit eigen ervaring raad ik aan om ondersteuningsfragmenten te gebruiken, zelfs bij het ontwikkelen voor Android 4. Hier zijn enkele redenen: Fragment of ondersteuningsfragment ?
Antwoord 2, autoriteit 2%
De klasse
android.app.Fragment
is verouderd sinds Android P (link), dus alleen android.support.v4.app.Fragment
mag overal worden gebruikt.
Antwoord 3
Als u zich richt op API 11+, heeft u de ondersteuningsbibliotheek niet nodig [en uw werkelijke APK zal in ieder geval kleiner zijn).
Als je iets vóór Android 3.x wilt ondersteunen, heb je de ondersteuningsbibliotheek nodig.
Is dit wat je vraagt?