A Fragment
est 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'
Activity
exécution de.
Un Fragment
doit toujours être intégré dans un fichier Activity
.
Fragments
ne font pas partie de l'API avant HoneyComb (3.0). Si vous souhaitez utiliser Fragments
dans une application ciblant une version de plate-forme antérieure à HoneyComb, vous devez ajouter le Support Package à votre projet et utiliser le FragmentActivity
pour contenir votre Fragments
. La FragmentActivity
classe a une API pour traiter Fragments
, alors que la Activity
classe, avant HoneyComb, n'en a pas.
Si votre projet cible HoneyComb ou une version plus récente uniquement, vous devez utiliser Activity
et ne FragmentActivity
pas conserver votre fichier Fragments
.
Quelques détails:
Utiliser android.app.Fragment
avec Activity
. Utiliser android.support.v4.app.Fragment
avec FragmentActivity
. N'ajoutez pas le package de support Fragment
à un Activity
car cela entraînera la levée d'une exception.
Une chose à faire attention: FragmentManager
et LoaderManager
avoir des versions de support distinctes pour FragmentActivity:
Si vous utilisez un Fragment
dans un Activity
(HoneyComb et plus), appelez
getFragmentManager()
obtenir android.app.FragmentManager
getLoaderManager()
obtenir android.app.LoaderManager
si vous utilisez un Fragment
dans 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, Activity
il ne doit pas nécessairement faire partie de la Activity
mise en page. Il peut être utilisé comme un travailleur invisible pour l'activité, sans interface utilisateur propre.