125 votes

Fragment ou Fragment de soutien ?

Je développe une application qui prend en charge Android >= 4.0. Il utilise des fragments de l' android.app package. Comme je suis confronté à des problèmes avec le plus vieux fragment de mise en œuvre de la version 4.0, comme ce l'un, qui sont déjà fixés dans la bibliothèque de prise en charge, j'envisage de passer à l'fragment de mise en œuvre de la bibliothèque de prise en charge pour obtenir une mesure plus fiable et une mise en œuvre cohérente.

Quelle est votre opinion à ce sujet? Êtes-vous à l'aide de fragments provenant de la bibliothèque de prise en charge, même s'ils sont déjà disponibles, le développement pour Android 4?

90voto

brillenheini Points 2030

De mon expérience, en utilisant le même fragment de mise en œuvre sur tous les appareils Android est un grand avantage. Je ne pouvais pas me débarrasser de tous les NullPointerExceptions lorsque l'état est enregistré sur Android 4.0 à l'aide de natif de fragments, avec le soutien de la bibliothèque, ils sont tous partis. Aussi je ne pouvais pas voir aucun inconvénient à ce jour avec cette approche.

Donc, ma réponse à ma propre question est maintenant: Lors du développement d'Android 4.x, à l'aide de fragments de la bibliothèque de prise en charge est une bonne idée. La bibliothèque de prise en charge a des bogues fixes qui sont toujours présents dans les vieux fragment de mise en œuvre et est fréquemment mis à jour avec plus de corrections de bugs.

40voto

Ross Hambrick Points 1869

Une des principales raisons de rester avec le support Fragment s pendant un certain temps est que vous n’avez pas accès au ChildFragmentManager jusqu’à api 17. La bibliothèque de support vous fournira une version de support du gestionnaire de fragments d'enfant.

Cela devient un gros problème si vous avez des fragments qui contiennent d'autres fragments. Ceci est courant dans les applications de tablettes très complexes et / ou votre architecture globale est basée sur une disposition par onglets ou utilise le tiroir de navigation.

4voto

RaB Points 849

À mon humble avis, si vous êtes planification à développer pour la version 4.0, je vous recommande d'aller avec les bibliothèques natives depuis l'exécutable devient plus petit. Il est vrai que vous pourriez avoir des problèmes de bugs dans les premières versions, mais je pense que la plupart de ceux-ci devraient être assez trivial pour contourner. Aussi la bibliothèque de compatibilité est censé carte pour le natif de fragments dans le cas où vous êtes en cours d'exécution sur 4.0 et plus de toute façon. Donc, vous pourriez vous retrouver avoir à se battre avec ces sortes de problèmes de toute façon. Le problème, avec le soutien des bibliothèques, c'est que vous avez beaucoup de classes apparaissent 2x (une fois dans le paquet de soutien de la structure et une fois dans le "natif" de la structure du package) qui rend le développement un peu plus lourd.

Cependant, si vous souhaitez également publier votre app pré 4.0, puis il n'y a aucun moyen de contourner la bibliothèque de prise en charge. En outre, depuis il y a environ 38% de tous les utilisateurs sur 2.3 il pourrait faire les affaires d'inclure cette version de l'OS. Dans ce cas, vous pouvez utiliser la bibliothèque de prise en charge en combinaison avec Jake Wartons ActionBarSherlock (ou avec googles soutien ActionBar Bibliothèque une fois qu'il est enfin libéré).

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