Junior
Hoe koppel je meerdere schermen in een app?
sobes.tech AI
Antwoord van AI
NavComponent (navigatiecomponent) van Android Jetpack.
- Fragment Nav Component: Voor op fragmenten gebaseerde toepassingen. Definieert het navigatiegrafiek met bestemmingen (schermen) en acties (overgangen).
- Navigation Actions: Bepalen hoe van de ene bestemming naar de andere te gaan. Kunnen argumenten bevatten.
- Safe Args: Gradle-plugin voor het genereren van code die typeveilige navigatie met argumenten garandeert.
- Navigation Graph: XML-resource die alle bestemmingen en hun verbindingen beschrijft.
<!-- 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>
// Safe Args kullanarak gezinme
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))
Alternatieven (minder aanbevolen):
- Intent: Klassieke manier om tussen Activity's te navigeren. Minder flexibel en moeilijker te beheren in complexe scenario's.
- FragmentTransaction: Voor handmatig beheer van het toevoegen, verwijderen en vervangen van fragments. Vereist meer code en is foutgevoelig.
- Eigen oplossingen: Eigen implementaties voor schermbeheer, vaak onnodig complex.