Cette page décrit les bonnes pratiques à suivre pour interagir avec la carte de navigation dans votre application.
Utilisez SupportNavigationFragment
au lieu de NavigationView
, dans la mesure du possible.
SupportNavigationFragment
est un wrapper qui facilite la gestion des rappels de cycle de vie NavigationView
. Vous n'avez donc pas besoin de gérer ces rappels vous-même. Cette méthode est moins sujette aux erreurs et constitue la méthode privilégiée pour utiliser Navigation dans votre application. Lorsque vous utilisez SupportNavigationFragment
, veillez à ne pas appeler les événements de cycle de vie NavigationView
.
Si vous utilisez NavigationView
, respectez un ordre strict lorsque vous appelez les méthodes de cycle de vie.
NavigationView
héberge la carte de navigation et suit de près les événements de cycle de vie comme les activités et les fragments Android, en effectuant des actions spécifiques lorsque ces événements de cycle de vie sont appelés. NavigationView
exécute plusieurs initialisations sur NavigationView#onCreate
et NavigationView#onStart
, et des nettoyages sur NavigationView#onStop
et NavigationView#onDestroy
, ainsi que lorsque d'autres événements de cycle de vie sont traités.
Les méthodes de cycle de vie NavigationView
ont la même signification que pour les activités ou les fragments Android. Par exemple, onCreate()
de NavigationView
se traduit approximativement par des rappels de cycle de vie et doit être appelé par ceux-ci à partir de l'activité ou du fragment Android. Étant donné que les rappels de cycle de vie NavigationView
sont basés sur les rappels de cycle de vie Android et invoqués dans le même ordre, un ordre strict de ces méthodes NavigationView est requis. Sinon, vous risquez de rencontrer des fuites de mémoire, des erreurs d'interface utilisateur, des problèmes de mise à jour de la position et d'autres problèmes.
Pour en savoir plus sur le cycle de vie des activités Android, consultez la section Concepts liés au cycle de vie des activités dans la documentation destinée aux développeurs Android.
Le tableau suivant indique quand les autres méthodes de cycle de vie doivent être appelées, après les méthodes de cycle de vie spécifiées :
Méthode de cycle de vie | Invoqué dans le cycle de vie de l'activité | Méthode de cycle de vie après laquelle l'événement est appelé |
---|---|---|
onConfigurationChanged()
|
Appelé lorsque l'UI est au premier plan et que la configuration change. | Toujours après onStart()
|
onTrimMemory()
|
Invoqué lorsqu'une activité est en arrière-plan. | Toujours après onPause()
|
onSaveInstance()
|
Appelé avant la destruction d'une activité. | Toujours après onStop()
|
N'appelez pas ces méthodes de cycle de vie plusieurs fois sans appeler d'abord la méthode de fermeture correspondante. De plus, gardez à l'esprit que si certains de ces rappels de cycle de vie Android sont gérés par l'application elle-même et que NavigationView
est ajouté au fragment après la création ou le démarrage, l'application doit appeler elle-même les méthodes spécifiques dans le bon ordre afin d'initialiser correctement le SDK Navigation.
Pour obtenir de l'aide supplémentaire sur l'utilisation de ces méthodes, consultez l'application de démonstration du SDK Navigation.
Si vous utilisez NavigationView
, appelez les événements de cycle de vie à partir de l'activité ou du fragment, mais pas des deux.
Pour respecter l'ordre strict des méthodes du cycle de vie, appelez ces événements à partir des rappels du cycle de vie de l'activité ou du fragment, qui reçoivent ces événements dans l'ordre. Cette approche garantit que les applications n'ont pas besoin de coordonner les fragments et les activités, et d'entraîner des appels en double.