web-dev-qa-db-fra.com

Fragments Android.app vs Android.support.v4.app utilisant ViewPager?

J'ai une question à propos de Android Bibliothèques de support, de fragments et, à titre d'exemple spécifique, de la classe ViewPager. Mon intention est de créer une application avec des fonctionnalités similaires à celles de l'exemple fourni sur le Android site Web du développeur ( http://developer.Android.com/training/animation/screen-slide. .html ou http://developer.Android.com/training/implementing-navigation/lateral.html ). En examinant leur code, j'ai remarqué qu'ils utilisent la bibliothèque Android.support.v4.app qui, d'après mes recherches, est le seul moyen d'accéder à la classe ViewPager.

Dans ma situation, la compatibilité ascendante ne m'intéresse pas. Le niveau minimum de l’API est de 14 (sandwich à la crème glacée) et l’objectif de construction est de 4,2 gélatine. Sous sa forme la plus simple, mon application fonctionne exactement comme la deuxième démo que j'ai liée sur le site Web Android dev - il suffit de glisser entre trois onglets contenant chacun un contenu.

Tous les articles/publications/réponses que j'ai lus semblent fortement favoriser la bibliothèque de support v4 . Maintenant, pour ma (mes) longue (s) question (s):

  1. Quelle est la meilleure façon de structurer mon application - en utilisant Android.support.v4.app, et donc en utilisant SupportFragments, ou en utilisant les fragments fournis dans Android.app - et pourquoi?

  2. Si les fragments de Android.app sont la voie à suivre, quelle est la meilleure façon d’aborder ViewPagers?

  3. Si SupportFragments convient le mieux à la tâche, j’estimerais qu’ils possèdent les mêmes fonctionnalités que les autres - alors quel est le but de les avoir à l’intérieur de Android.app?

J'espère que quelqu'un avec une compréhension plus claire pourra m'éclairer un peu parce que je suis stupéfait ...

181
jonstaff

Vous pouvez utiliser ViewPager avec des fragments natifs du package Android.app avec les adaptateurs du package Android.support.v13.app . Vous devez utiliser le fichier jar de support v13 pour cela.

Il existe deux versions des adaptateurs qui fonctionnent avec ViewPager, celles du package v4 sont destinées à être utilisées avec des fragments de support, celles de v13 avec des fragments natifs.

La raison pour laquelle il existe maintenant deux implémentations de fragments est historique: Les fragments dans le package Android.app ont été introduits avec Android 3 pour les tablettes uniquement et la bibliothèque de support a été créée pour apporter des fragments aux téléphones exécutant des versions plus anciennes. Sur Android 4, vous avez les deux.

D'après ma propre expérience, je recommanderais d'utiliser des fragments de support, même lors du développement pour Android 4. Voici quelques raisons: Fragment ou fragment de support?

183
brillenheini

La classe Android.app.Fragment est obsolète depuis Android P ( lien ), de sorte que seul Android.support.v4.app.Fragment devrait être utilisé partout.

3
Artyom

Si vous ciblez l'API 11+, vous n'aurez pas besoin de la bibliothèque de support (et votre apk réel sera au moins plus petit).

Si vous souhaitez prendre en charge une version antérieure à Android 3.x, vous aurez besoin de la bibliothèque de prise en charge.

Est-ce ce que vous demandez?

1
Matt