Comment la navigation est-elle effectuée dans les applications Android?
sobes.tech IA
Réponse de l'IA
La navigation dans les applications Android peut se faire de différentes manières, dont les plus courantes sont :
-
Composants de navigation (Navigation Component): Cadre recommandé par Google pour implémenter la navigation. Utilise un graphique de navigation pour décrire tous les écrans et transitions entre eux. Supporte les arguments, liens profonds, animations de transition.
// Exemple de graphique de navigation <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/nav_graph" app:startDestination="@id/fragmentA"> <fragment android:id="@+id/fragmentA" android:name="com.example.myapp.FragmentA" android:label="Fragment A"> <action android:id="@+id/action_fragmentA_to_fragmentB" app:destination="@id/fragmentB" /> </fragment> <fragment android:id="@+id/fragmentB" android:name="com.example.myapp.FragmentB" android:label="Fragment B" /> </navigation>// Exemple de transition avec Safe Args findNavController().navigate(R.id.action_fragmentA_to_fragmentB) -
Intents explicites (Explicit Intents): Utilisés pour lancer un composant spécifique (Activity, Service, BroadcastReceiver) dans l'application ou une autre.
// Exemple de lancement d'une Activity val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) -
Intents implicites (Implicit Intents): Déclarent l'action à effectuer et les données avec lesquelles cette action doit être effectuée. Le système Android trouve le composant approprié pour traiter cette intention.
// Exemple d'ouverture d'une page web val webpage = Uri.parse("http://www.android.com") val intent = Intent(Intent.ACTION_VIEW, webpage) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } -
Gestion de la pile de retour (Back Stack): Le système Android maintient une pile de retour qui gère l'historique de navigation. Le bouton "Retour" ramène l'utilisateur à l'élément précédent dans la pile.
-
BottomNavigationView: Composant UI pour la navigation entre destinations principales dans l'application.
-
DrawerLayout (Navigation Drawer): Panneau latéral déployable avec des éléments de menu pour la navigation.
Chaque méthode a ses avantages et scénarios d'utilisation. Le composant de navigation est préféré pour gérer la navigation entre fragments et activités dans une même application, offrant une approche unifiée et simplifiant la gestion de la pile de retour et des arguments. Les intents sont utilisés pour lancer d'autres composants et interagir avec d'autres applications.