Quelle est la différence entre android.app.Fragmentet android.support.v4.app.Fragmentet quelles sont les circonstances dans lesquelles chacun devrait être utilisé?
Réponses:
android.support.v4.app.Fragmentest 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.Fragmentest 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 supportFragmentpour 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.Fragmentclasse 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.Fragmentla bonne approche?
J'utilise android.support.v4.app.Fragmentexclusivement.
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.Fragmentet votre fichier APK sera plus petit.
Sinon, ajoutez la android.support.v4.app.Fragmentbibliothè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