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.