Über Rails können Nutzer auf Ziele in Apps zugreifen, die auf Geräten mit großen Bildschirmen ausgeführt werden. Navigationsleisten sollten für Folgendes verwendet werden:
- Ziele auf oberster Ebene, auf die überall in einer App zugegriffen werden muss
- Drei bis sieben Hauptziele
- Tablet- oder Desktop-Layouts

Auf dieser Seite erfahren Sie, wie Sie Rails in Ihrer App mit zugehörigen Bildschirmen und grundlegender Navigation anzeigen.
API-Oberfläche
Verwenden Sie die NavigationRail
-Composable mit NavigationRailItem
, um einen Rail in Ihrer Anwendung zu implementieren. Der NavigationRailItem
steht für ein einzelnes Rail-Element in der Rail-Spalte.
NavigationRailItem
umfasst die folgenden wichtigen Parameter:
selected
: Gibt an, ob das aktuelle Rail-Element visuell hervorgehoben wird.onClick()
: Eine erforderliche Lambda-Funktion, die die Aktion definiert, die ausgeführt werden soll, wenn der Nutzer auf das Rail-Element klickt. Hier werden in der Regel Navigationsereignisse verarbeitet, der Status des ausgewählten Leistenelements aktualisiert oder entsprechende Inhalte geladen.label
: Hier wird Text im Rail-Element angezeigt. Optional:icon
: Zeigt ein Symbol im Rail-Element an. Optional:
Beispiel: Schienenbasierte Navigation
Im folgenden Snippet wird ein Navigationsstreifen implementiert, damit Nutzer zwischen verschiedenen Bildschirmen in einer App wechseln können:
@Composable fun NavigationRailExample(modifier: Modifier = Modifier) { val navController = rememberNavController() val startDestination = Destination.SONGS var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) } Scaffold(modifier = modifier) { contentPadding -> NavigationRail(modifier = Modifier.padding(contentPadding)) { Destination.entries.forEachIndexed { index, destination -> NavigationRailItem( selected = selectedDestination == index, onClick = { navController.navigate(route = destination.route) selectedDestination = index }, icon = { Icon( destination.icon, contentDescription = destination.contentDescription ) }, label = { Text(destination.label) } ) } } AppNavHost(navController, startDestination) } }
Wichtige Fakten
NavigationRail
zeigt eine vertikale Spalte mit Rail-Elementen an, wobei jedes Element einemDestination
entspricht.val navController = rememberNavController()
erstellt und speichert eine Instanz vonNavHostController
, die die Navigation in einemNavHost
verwaltet.var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) }
verwaltet den Status des aktuell ausgewählten Schienenelements.startDestination.ordinal
ruft den numerischen Index (die Position) desDestination.SONGS
-Enum-Eintrags ab.
- Wenn auf ein Rail-Element geklickt wird, wird
navController.navigate(route = destination.route)
aufgerufen, um zum entsprechenden Bildschirm zu navigieren. - Die
onClick
-Lambda-Funktion desNavigationRailItem
aktualisiert denselectedDestination
-Status, um das angeklickte Rail-Element visuell hervorzuheben. - Dazu wird die
AppNavHost
-Composable-Funktion aufgerufen undnavController
undstartDestination
übergeben, um den tatsächlichen Inhalt des ausgewählten Bildschirms anzuzeigen.
Ergebnis
Das folgende Bild zeigt das Ergebnis des vorherigen Snippets:
