A Fragmentest une section d'un Activity, qui a:
- son propre cycle de vie
- reçoit ses propres événements d'entrée
- peut être ajouté ou supprimé pendant l'
Activityexécution de.
Un Fragmentdoit toujours être intégré dans un fichier Activity.
Fragmentsne font pas partie de l'API avant HoneyComb (3.0). Si vous souhaitez utiliser Fragmentsdans une application ciblant une version de plate-forme antérieure à HoneyComb, vous devez ajouter le Support Package à votre projet et utiliser le FragmentActivitypour contenir votre Fragments. La FragmentActivityclasse a une API pour traiter Fragments, alors que la Activityclasse, avant HoneyComb, n'en a pas.
Si votre projet cible HoneyComb ou une version plus récente uniquement, vous devez utiliser Activityet ne FragmentActivitypas conserver votre fichier Fragments.
Quelques détails:
Utiliser android.app.Fragmentavec Activity. Utiliser android.support.v4.app.Fragmentavec FragmentActivity. N'ajoutez pas le package de support Fragmentà un Activitycar cela entraînera la levée d'une exception.
Une chose à faire attention: FragmentManageret LoaderManageravoir des versions de support distinctes pour FragmentActivity:
Si vous utilisez un Fragmentdans un Activity(HoneyComb et plus), appelez
getFragmentManager() obtenir android.app.FragmentManager
getLoaderManager() obtenir android.app.LoaderManager
si vous utilisez un Fragmentdans un FragmentActivity(pré-HoneyComb), appelez:
getSupportFragmentManager()pour obtenir android.support.v4.app.FragmentManager.
getSupportLoaderManager() obtenir android.support.v4.app.LoaderManager
donc, ne pas faire
//don't do this
myFragmentActivity.getLoaderManager();
//instead do this:
myFragmentActivity.getSupportLoaderManager();
ou
//don't do this:
android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager();
//instead do this:
android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager()
Il est également utile de savoir que même si un fragment doit être incorporé dans un, Activityil ne doit pas nécessairement faire partie de la Activitymise en page. Il peut être utilisé comme un travailleur invisible pour l'activité, sans interface utilisateur propre.