Android.app-fragmenten versus android.support.v4.app met ViewPager?

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.appgebruiken, 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):

  1. 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 in android.app– en waarom?

  2. Als fragmenten van android.appde juiste keuze zijn, wat is dan de optimale manier om ViewPagerste benaderen?

  3. 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.appte hebben?

Hopelijk kan iemand met een beter begrip me een beetje opheldering geven, want ik ben verbijsterd…


Antwoord 1, autoriteit 100%

U kunt ViewPagergebruiken met native fragmenten uit het pakket android.appmet 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 v13met native fragmenten.

De reden waarom er nu twee fragmentimplementaties zijn, is historisch: fragmenten in het pakket android.appzijn 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.Fragmentis verouderd sinds Android P (link), dus alleen android.support.v4.app.Fragmentmag 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?

Other episodes