Was ist die Navigation Component und warum wird sie benötigt?
Die Navigation Component ist eine Bibliothek von Google für Android, die entwickelt wurde, um die Navigation zwischen Bildschirmen (Fragments, Activities, Dialogen) in Kotlin- und Java-Apps zu vereinfachen. Sie ist Teil von Android Jetpack und bietet eine einheitliche, vorhersagbare Methode zur Verwaltung von Übergängen, zur Handhabung von Argumenten und zur Unterstützung des "Zurück"-Buttons.
Warum wird sie benötigt? Ohne die Navigation Component schrieben Entwickler oft viel Boilerplate-Code: Sie erstellten FragmentManager, verwalteten den BackStack, übergaben Daten über Bundle und überwachten den Zustand von Übergängen. Die Bibliothek löst diese Probleme, indem sie Folgendes bietet:
- Visuellen Navigationseditor — einen Übergangsgraphen in XML.
- Sichere Argumentübergabe durch Safe Args (Gradle-Plugin).
- Automatische BackStack-Verwaltung — der "Zurück"-Button funktioniert korrekt.
- Deep Links — Übergänge aus Benachrichtigungen oder externen Links.
- Übergangsanimationen — einfache Konfiguration in XML.
Installation der Navigation Component
Da die Navigation Component eine Bibliothek für Android ist, erfolgt die Installation über das Gradle-Build-System, nicht über pip oder npm. Fügen Sie die Abhängigkeiten in Ihre build.gradle-Datei (Modulebene, normalerweise app/build.gradle) ein:
// build.gradle (Module: app)
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'androidx.navigation.safeargs.kotlin' // für Safe Args
}
android {
// ... Standardeinstellungen
}
dependencies {
implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.7'
// Für dynamische Feature-Module
implementation 'androidx.navigation:navigation-dynamic-features-fragment:2.7.7'
}
Stellen Sie außerdem sicher, dass das Safe Args-Plugin in der build.gradle (Projektebene) hinzugefügt ist:
// build.gradle (Project level)
plugins {
id 'androidx.navigation.safeargs.kotlin' version '2.7.7' apply false
}
Nach der Gradle-Synchronisation ist die Bibliothek einsatzbereit.
Schnellstart mit Codebeispiel
Wir erstellen eine einfache App mit zwei Bildschirmen: HomeFragment und DetailFragment. Der Benutzer klickt auf eine Schaltfläche auf dem ersten Bildschirm und wechselt zum zweiten, wobei ein String übergeben wird.
Schritt 1: Navigationsdatei erstellen
Erstellen Sie im Ordner res/navigation die Datei nav_graph.xml:
<?xml version="1.0" encoding="utf-8"?>
<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.app.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.app.DetailFragment"
android:label="Detail"
tools:layout="@layout/fragment_detail">
<argument
android:name="message"
app:argType="string" />
</fragment>
</navigation>
Schritt 2: Activity konfigurieren
Fügen Sie in activity_main.xml den NavHostFragment hinzu:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas. Auch in der Bibliothek
DomPDF für PHP: Vollständiges Tutorial mit Praxisbeispielen
WebSocket-Bibliotheken für Rust: tokio-tungstenite und async-tungstenite
CLI-Framework für Rust: Vollständiger Leitfaden zur Entwicklung von Dienstprogrammen
Arbeiten mit Excel in Swift: Vollständiger Leitfaden zu Bibliotheken und Tools für iOS/macOS
node-schedule — Aufgabenplaner für TypeScript