182 votes

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

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

Dans ma situation, je n'ai aucun intérêt pour la rétrocompatibilité. Le niveau d'API minimum est de 14 (Ice Cream Sandwich) et la cible de construction est 4.2 Jelly Bean. Dans sa forme la plus simple, mon application fonctionne exactement comme la deuxième démo dont j'ai donné le lien sur le site Android dev - il suffit de passer d'un onglet à l'autre avec du contenu dans chacun.

Tous les articles/posts/réponses que j'ai lus semblent favoriser fortement la bibliothèque de support v4 . J'en viens maintenant à ma (mes) question(s), même si elle(s) est (sont) longue(s) :

  1. Quelle est la meilleure façon de structurer mon dossier de candidature - à l'aide de android.support.v4.app et donc d'utiliser SupportFragments, ou d'utiliser les fragments fournis dans android.app - et pourquoi ?

  2. Si les fragments de android.app sont la voie à suivre, quelle est la manière optimale d'approcher ViewPagers ?

  3. Si les SupportFragments sont les mieux adaptés à la tâche, j'estime qu'ils possèdent la même fonctionnalité que l'autre - alors quel est le but de les avoir à l'intérieur. android.app ?

J'espère que quelqu'un qui a une meilleure compréhension pourra me donner quelques éclaircissements car je suis perplexe...

1 votes

Vous ne pouvez pas utiliser Fragments si vous utilisez le ViewPager vous devez utiliser la bibliothèque de support SupportFragment

1 votes

SupportFragment n'est pas une classe dans le SDK Android...

2 votes

@Karakuri Désolé pour la confusion, je ne veux pas dire une classe littérale. SupportFragment je fais simplement référence à la Fragment disponible dans android.support.v4.app .

183voto

brillenheini Points 2030

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

Il y a deux versions des adaptateurs qui fonctionnent avec ViewPager ceux qui sont dans le v4 sont destinés à être utilisés avec des fragments de support, ceux du paquet v13 avec des fragments natifs.

La raison pour laquelle il existe maintenant deux implémentations de fragment est historique : Les fragments dans le 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 fonctionnant avec des versions plus anciennes. Sur Android 4, vous avez les deux.

D'après mon expérience, je recommande d'utiliser les fragments de support, même lorsque vous développez pour Android 4. Voici quelques raisons : Fragmenter ou soutenir le fragment ?

0 votes

Support.v13 fonctionne pour ViewPager ... jusqu'à ce que vous essayiez d'utiliser ViewPager dans un DialogFragment :-(

0 votes

android.app n'a pas FragmentPagerAdapter alors il devient impossible d'utiliser le viewpager avec Android.app.Fragment ? une idée ? y a-t-il une option pour l'ancien view pager ? De manière à accrocher dynamiquement le fragment pour des onglets donnés.

0 votes

@Nikhil il y a deux versions de FragmentPagerAdapter. Celle qui se trouve dans le android.support.v4.app fonctionne avec des fragments de support, l'autre en android.support.v13.app avec des fragments "normaux".

3voto

Artyom Points 895

android.app.Fragment est dépréciée depuis Android P ( lien ), donc seulement android.support.v4.app.Fragment devrait être utilisé partout.

1voto

Matt Points 2133

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

Si vous souhaitez prendre en charge un système antérieur à Android 3.x, vous aurez besoin de la bibliothèque de prise en charge.

C'est ce que vous demandez ?

9 votes

Vous devez utiliser la bibliothèque de support pour utiliser le ViewPager, ce qui est le sujet de la question.

0 votes

@Matt Merci pour votre réponse, mais je cherche la meilleure solution qui incorpore ViewPager et une explication de la raison pour laquelle cette solution est la meilleure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X