Komponent Switch
umożliwia użytkownikom przełączanie się między dwoma stanami: zaznaczonym i niezaznaczonym. W aplikacji możesz użyć przełącznika, który pozwoli użytkownikowi wykonać jedną z tych czynności:
- Włącz lub wyłącz ustawienie.
- Włącz lub wyłącz funkcję.
- Wybierz opcję.
Komponent składa się z 2 części: suwaka i ścieżki. Suwak to element przełącznika, który można przeciągać, a ścieżka to tło. Użytkownik może przeciągnąć suwak w lewo lub w prawo, aby zmienić stan przełącznika. Mogą też dotknąć przełącznika, aby zaznaczyć lub odznaczyć to pole.

Implementacja podstawowa
Pełną definicję interfejsu API znajdziesz w Switch
. Oto niektóre z najważniejszych parametrów, których możesz potrzebować:
checked
: stan początkowy przełącznika.onCheckedChange
: wywołanie zwrotne, które jest wywoływane, gdy zmienia się stan przełącznika.enabled
: czy przełącznik jest włączony czy wyłączony.colors
: kolory użyte w przypadku przełącznika.
Poniższy przykład to minimalna implementacja funkcji kompozycyjnej Switch
.
@Composable fun SwitchMinimalExample() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it } ) }
Gdy to pole wyboru nie jest zaznaczone, implementacja wygląda tak:

Tak wygląda zaznaczone pole wyboru:

Implementacja zaawansowana
Główne parametry, których możesz użyć podczas wdrażania bardziej zaawansowanego przełącznika, to:
thumbContent
: użyj tej opcji, aby dostosować wygląd suwaka, gdy jest zaznaczony.colors
: użyj tej opcji, aby dostosować kolor ścieżki i suwaka.
Niestandardowa miniatura
Aby utworzyć niestandardową miniaturę, możesz przekazać dowolny element kompozycyjny do parametru thumbContent
. Poniżej znajdziesz przykład przełącznika, który używa niestandardowej ikony dla suwaka:
@Composable fun SwitchWithIconExample() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it }, thumbContent = if (checked) { { Icon( imageVector = Icons.Filled.Check, contentDescription = null, modifier = Modifier.size(SwitchDefaults.IconSize), ) } } else { null } ) }
W tej implementacji wygląd niezaznaczonego pola jest taki sam jak w przykładzie z poprzedniej sekcji. Jednak po zaznaczeniu to wdrożenie wygląda tak:

Kolory niestandardowe
Poniższy przykład pokazuje, jak za pomocą parametru colors zmienić kolor suwaka i jego ścieżki w zależności od tego, czy jest on zaznaczony.
@Composable fun SwitchWithCustomColors() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it }, colors = SwitchDefaults.colors( checkedThumbColor = MaterialTheme.colorScheme.primary, checkedTrackColor = MaterialTheme.colorScheme.primaryContainer, uncheckedThumbColor = MaterialTheme.colorScheme.secondary, uncheckedTrackColor = MaterialTheme.colorScheme.secondaryContainer, ) ) }
Ta implementacja wygląda tak:
