Quelle est la différence entre android.app.Fragment
et android.support.v4.app.Fragment
et quelles sont les circonstances dans lesquelles chacun devrait être utilisé?
Réponses:
android.support.v4.app.Fragment
est la classe Fragment dans la bibliothèque de support Android, qui est un package de compatibilité qui vous permet d'utiliser certaines des nouvelles fonctionnalités d'Android sur les anciennes versions d'Android.
android.app.Fragment
est la classe Fragment dans la version native du SDK Android. Il a été introduit dans Android 3 (API 11).
Si vous souhaitez que votre application utilise des fragments et que vous souhaitez cibler des appareils avant l'API 11, vous devez utiliser android.support.v4.app.Fragment
. Cependant, si vous ciblez uniquement les appareils exécutant l'API 11 ou une version ultérieure, vous pouvez utiliser android.app.Fragment
.
Edit: le système d'exploitation android.app.Fragment
est désormais obsolète (à partir du niveau d'API 28), et tout le monde devrait passer à l'utilisation des implémentations de la bibliothèque de support.
À partir de 2018:
De la android.app.Fragment
documentation :
Cette classe est obsolète au niveau de l'API 28.
Utilisez la bibliothèque de supportFragment
pour un comportement cohérent sur tous les appareils et un accès à Lifecycle.
Les fragments de support ( android.support.v4.app.Fragment
) devraient donc être utilisés partout au lieu des fragments natifs ( android.app.Fragment
) maintenant.
android.app.Fragment
classe soit obsolète, ce niveau d'API 28 ait une approche de remplacement alternative, éventuellement radicale. Existe-t-il une approche avant ou est-ce que cette approche rétrocompatible est android.support.v4.app.Fragment
la bonne approche?
J'utilise android.support.v4.app.Fragment
exclusivement.
Toutes les applications que j'écris doivent être compatibles avec Android 2.3 et c'est le moyen le plus simple de le faire.
Si vous soutenez 11+, respectez-le android.app.Fragment
.
Si votre application est ciblée pour l'API 11 ou supérieure, vous pouvez l'utiliser android.app.Fragment
et votre fichier APK sera plus petit.
Sinon, ajoutez la android.support.v4.app.Fragment
bibliothèque à votre projet afin de prendre en charge les anciennes versions d'API Android (Android 3.x).
android.support.v4.app.Fragment
est une bibliothèque que vous pouvez utiliser pour obtenir une rétrocompatibilité avec une ancienne version d'API.
Des fragments ont été ajoutés au niveau de l'API 11 (avec d'autres fonctionnalités), vous devez inclure cette bibliothèque pour étendre ces fonctions aux appareils pré-API 11. C'est une bibliothèque utile et je suggère de jeter un œil à ActionBarSherlock, qui étend la barre d'action aux appareils pré-API v11.
Si votre application est ciblée pour l'API 11 ou un niveau supérieur, vous pouvez utiliser android.app.Fragment et cela réduira la taille de l'APK. Sinon, utilisez android.support.v4.app.Fragment