Przyciski to podstawowe komponenty, które umożliwiają użytkownikowi uruchomienie zdefiniowanego działania. Istnieje 5 rodzajów przycisków. W tej tabeli opisujemy wygląd każdego z 5 typów przycisków oraz miejsca, w których należy ich używać:
| Typ | Wygląd | Cel |
|---|---|---|
| Wypełniony | Jednolite tło z kontrastującym tekstem. | Przycisk o wysokim kontraście. Jest przeznaczony do realizacji głównych działań w aplikacji, takich jak „Prześlij” i „Zapisz”. Efekt cienia podkreśla znaczenie przycisku. |
| Wypełniony tonalny | Kolor tła zmienia się w zależności od powierzchni. | Przeznaczony do działań głównych lub istotnych. Wypełniony przycisk tonalny oferuje większą równowagę wizualną i jest odpowiedni do funkcji takich jak „Dodaj do koszyka” czy „Zaloguj się”. |
| Podniesiony | Wyróżnia się cieniem. | Pełni podobną funkcję jak przyciski tonalne. Zwiększ efekt podniesienia, aby przycisk był jeszcze bardziej widoczny. |
| Kontur | Ma obramowanie bez wypełnienia. | Przycisk o średnim znaczeniu, który zawiera ważne, ale nie główne działania. Dobrze komponuje się z innymi przyciskami, wskazując alternatywne działania dodatkowe, takie jak „Anuluj” czy „Wstecz”. |
| Tekst | Wyświetla tekst bez tła ani obramowania. | Przycisk o niskim kontraście, idealny do mniej istotnych działań, takich jak linki nawigacyjne czy funkcje dodatkowe, np. „Więcej informacji” lub „Wyświetl szczegóły”. |
Ilustracja przedstawiająca 5 rodzajów przycisków w Material Design:
Powierzchnia interfejsu API
onClick- Funkcja wywoływana przez system, gdy użytkownik naciśnie przycisk.
enabled- W przypadku wartości
falseparametr sprawia, że przycisk jest niedostępny i nieaktywny. colors- Instancja
ButtonColorsokreśla kolory przycisku. contentPadding- Odstęp w przycisku.
Wypełniony przycisk
Komponent wypełnionego przycisku korzysta z podstawowej funkcji kompozycyjnej Button. Domyślnie jest wypełniony jednolitym kolorem. Fragment kodu pokazuje, jak wdrożyć komponent:
@Composable fun FilledButtonExample(onClick: () -> Unit) { Button(onClick = { onClick() }) { Text("Filled") } }
Implementacja wygląda tak:
Wypełniony przycisk tonalny
Komponent wypełnionego przycisku tonalnego korzysta z funkcji kompozycyjnej FilledTonalButton.
Domyślnie jest wypełniony kolorem tonalnym.
Fragment kodu pokazuje, jak wdrożyć komponent:
@Composable fun FilledTonalButtonExample(onClick: () -> Unit) { FilledTonalButton(onClick = { onClick() }) { Text("Tonal") } }
Implementacja wygląda tak:
Przycisk z konturem
Komponent przycisku z konturem korzysta z funkcji kompozycyjnej OutlinedButton. Domyślnie jest otoczony konturem.
Fragment kodu pokazuje, jak wdrożyć komponent:
@Composable fun OutlinedButtonExample(onClick: () -> Unit) { OutlinedButton(onClick = { onClick() }) { Text("Outlined") } }
Implementacja wygląda tak:
Przycisk podniesiony
Komponent przycisku podniesionego korzysta z funkcji kompozycyjnej ElevatedButton. Domyślnie ma cień, który symuluje efekt podniesienia. Jest to wypełniony przycisk z cieniem.
Fragment kodu pokazuje, jak wdrożyć komponent:
@Composable fun ElevatedButtonExample(onClick: () -> Unit) { ElevatedButton(onClick = { onClick() }) { Text("Elevated") } }
Implementacja wygląda tak:
Przycisk tekstowy
Komponent przycisku tekstowego korzysta z funkcji kompozycyjnej TextButton. Do momentu naciśnięcia przycisk jest widoczny tylko jako tekst. Domyślnie nie ma wypełnienia ani konturu.
Fragment kodu pokazuje, jak wdrożyć komponent:
@Composable fun TextButtonExample(onClick: () -> Unit) { TextButton( onClick = { onClick() } ) { Text("Text Button") } }
Implementacja wygląda tak: