Button
Schaltflächen sind grundlegende Komponenten, mit denen der Nutzer eine definierte Aktion auslösen kann. Es gibt fünf Arten von Schaltflächen. In der folgenden Tabelle wird das Aussehen der fünf Schaltflächentypen beschrieben und es wird angegeben, wo Sie sie verwenden sollten.
Eingeben |
Darstellung |
Zweck |
---|---|---|
Ausgefüllt |
Einfarbiger Hintergrund mit kontrastierendem Text. |
Schaltflächen mit hoher Gewichtung. Diese sind für primäre Aktionen in einer Anwendung vorgesehen, z. B. „Senden“ und „Speichern“. Der Schatteneffekt unterstreicht die Bedeutung der Schaltfläche. |
Gefüllt, Ton in Ton |
Die Hintergrundfarbe variiert je nach Oberfläche. |
Auch für primäre oder wichtige Aktionen. Gefüllte Schaltflächen haben ein höheres visuelles Gewicht und eignen sich für Funktionen wie „In den Einkaufswagen legen“ und „Anmelden“. |
Erhöht |
Fällt durch einen Schatten auf. |
Hat eine ähnliche Funktion wie tonale Schaltflächen. Erhöhen Sie die Erhebung, damit die Schaltfläche noch besser sichtbar ist. |
Umrandet |
Hat einen Rahmen ohne Füllung. |
Schaltflächen mit mittlerer Gewichtung, die wichtige, aber nicht primäre Aktionen enthalten. Sie lassen sich gut mit anderen Schaltflächen kombinieren, um alternative oder sekundäre Aktionen wie „Abbrechen“ oder „Zurück“ zu kennzeichnen. |
Text |
Zeigt Text ohne Hintergrund oder Rahmen an. |
Schaltflächen mit geringer Betonung, ideal für weniger wichtige Aktionen wie Navigationslinks oder sekundäre Funktionen wie „Weitere Informationen“ oder „Details ansehen“. |
Die folgende Abbildung zeigt die fünf Arten von Schaltflächen in Material Design.
API-Oberfläche
onClick
: Die Funktion, die aufgerufen wird, wenn der Nutzer auf die Schaltfläche drückt.enabled
: Wenn dieser Parameter auf „false“ gesetzt ist, wird die Schaltfläche als nicht verfügbar und inaktiv angezeigt.colors
: Eine Instanz vonButtonColors
, die die in der Schaltfläche verwendeten Farben bestimmt.contentPadding
: Der Innenabstand des Buttons.
Gefüllte Schaltfläche
Die Komponente für gefüllte Schaltflächen verwendet die einfache zusammensetzbare Funktion Button
. Standardmäßig wird es mit einer durchgehenden Farbe gefüllt. Das folgende Snippet zeigt, wie die Komponente implementiert wird:
@Composable fun FilledButtonExample(onClick: () -> Unit) { Button(onClick = { onClick() }) { Text("Filled") } }
Diese Implementierung sieht so aus:

Gefüllte tonale Schaltfläche
Für die Komponente „Gefüllte tonale Schaltfläche“ wird das Composable FilledTonalButton
verwendet.
Standardmäßig wird es mit einer tonalen Farbe gefüllt.
Das folgende Snippet zeigt, wie die Komponente implementiert wird:
@Composable fun FilledTonalButtonExample(onClick: () -> Unit) { FilledTonalButton(onClick = { onClick() }) { Text("Tonal") } }
Diese Implementierung sieht so aus:

Schaltfläche mit Umriss
Für die Komponente „Schaltfläche mit Umriss“ wird das Composable OutlinedButton
verwendet. Sie wird standardmäßig mit einer Kontur angezeigt.
Das folgende Snippet zeigt, wie die Komponente implementiert wird:
@Composable fun OutlinedButtonExample(onClick: () -> Unit) { OutlinedButton(onClick = { onClick() }) { Text("Outlined") } }
Diese Implementierung sieht so aus:

Erhöhte Schaltfläche
Für die Komponente „Schaltfläche mit Schatten“ wird die zusammensetzbare Funktion ElevatedButton
verwendet. Standardmäßig wird ein Schatten angezeigt, der den Höhenunterschied darstellt. Es handelt sich im Grunde um eine Schaltfläche mit Umriss und Schatten.
Das folgende Snippet zeigt, wie die Komponente implementiert wird:
@Composable fun ElevatedButtonExample(onClick: () -> Unit) { ElevatedButton(onClick = { onClick() }) { Text("Elevated") } }
Diese Implementierung sieht so aus:

Schaltfläche „Text“
Für die Textschaltflächenkomponente wird die zusammensetzbare Funktion TextButton
verwendet. Bis dahin wird es nur als Text angezeigt. Standardmäßig hat sie keine solide Füllung oder Kontur.
Das folgende Snippet zeigt, wie die Komponente implementiert wird:
@Composable fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
Diese Implementierung sieht so aus:
