Sobes.tech
Junior

Comment lier plusieurs écrans dans une application?

sobes.tech IA

Réponse de l'IA

Composant de navigation NavComponent de Android Jetpack.

  • Fragment Nav Component : Pour les applications basées sur des fragments. Définit le graphique de navigation avec des destinations (écrans) et des actions (transitions).
  • Navigation Actions : Définissent comment passer d'une destination à une autre. Peuvent contenir des arguments.
  • Safe Args : Plugin Gradle pour générer du code assurant une navigation sécurisée avec arguments.
  • Navigation Graph : Ressource XML décrivant toutes les destinations et leurs connexions.
<!-- res/navigation/nav_graph.xml -->
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/homeFragment">

    <fragment
        android:id="@+id/homeFragment"
        android:name="com.example.HomeFragment"
        android:label="Home"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_homeFragment_to_detailFragment"
            app:destination="@id/detailFragment" />
    </fragment>

    <fragment
        android:id="@+id/detailFragment"
        android:name="com.example.DetailFragment"
        android:label="Detail"
        tools:layout="@layout/fragment_detail">
        <argument
            android:name="itemId"
            app:argType="integer" />
    </fragment>
</navigation>
// Navigation avec Safe Args
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))

Alternatives (moins préférées) :

  • Intent : Méthode classique pour passer d'une Activity à une autre. Moins flexible et plus complexe à gérer dans des scénarios complexes.
  • FragmentTransaction : Pour gérer manuellement l'ajout, la suppression et le remplacement de fragments. Nécessite plus de code et est sujet à des erreurs.
  • Solutions personnalisées : Implémentations propres pour la gestion des écrans, souvent inutilement complexes.