Navigation Component für Kotlin: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

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.                    

Empfehlungen