Junior
Wie verbindet man mehrere Bildschirme in einer Anwendung?
sobes.tech KI
Antwort von AI
NavComponent (Navigationskomponente) von Android Jetpack.
- Fragment Nav Component: Für Anwendungen, die auf Fragmenten basieren. Definiert das Navigationsdiagramm mit Zielen (Bildschirmen) und Aktionen (Übergängen).
- Navigation Actions: Bestimmen, wie man von einem Ziel zum anderen gelangt. Können Argumente enthalten.
- Safe Args: Gradle-Plugin zur Generierung von Code, der eine typsichere Navigation mit Argumenten gewährleistet.
- Navigation Graph: XML-Ressource, die alle Ziele und deren Verbindungen beschreibt.
<!-- 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 mit Safe Args
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))
Alternativen (weniger bevorzugt):
- Intent: Klassischer Weg, um zwischen Activities zu wechseln. Weniger flexibel und schwerer in komplexen Szenarien zu steuern.
- FragmentTransaction: Für manuelle Steuerung des Hinzufügens, Entfernens und Ersetzens von Fragmenten. Erfordert mehr Code und ist fehleranfällig.
- Eigene Lösungen: Eigene Implementierungen zur Bildschirmverwaltung, oft unnötig komplex.