Le composant Switch
permet aux utilisateurs de basculer entre deux états: coché et non coché. Dans votre application, vous pouvez utiliser un commutateur pour permettre à l'utilisateur d'effectuer l'une des opérations suivantes:
- Activez ou désactivez un paramètre.
- Activer ou désactiver une fonctionnalité
- Sélectionnez une option.
Ce composant est constitué de deux parties: le pouce et la piste. Le pouce est la partie déplaçable du commutateur, et la piste est l'arrière-plan. L'utilisateur peut faire glisser le curseur vers la gauche ou vers la droite pour modifier l'état du bouton. Ils peuvent également appuyer sur le bouton pour vérifier et effacer.
Implémentation de base
Consultez la documentation de référence sur Switch
pour obtenir une définition complète de l'API. Voici quelques-uns des paramètres clés que vous pourriez avoir besoin d'utiliser:
checked
: état initial du bouton bascule.onCheckedChange
: rappel appelé lorsque l'état du commutateur change.enabled
: indique si le bouton est activé ou désactivé.colors
: couleurs utilisées pour le commutateur.
L'exemple suivant est une implémentation minimale du composable Switch
.
@Composable fun SwitchMinimalExample() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it } ) }
Cette implémentation se présente comme suit lorsque la case est décochée:
Voici l'apparence quand la case est cochée:
Implémentation avancée
Les principaux paramètres à utiliser lors de la mise en œuvre d'un commutateur plus avancé sont les suivants:
thumbContent
: permet de personnaliser l'apparence du curseur lorsqu'il est coché.colors
: utilisez cette option pour personnaliser la couleur du titre et du curseur.
Pouce personnalisée
Vous pouvez transmettre n'importe quel composable pour le paramètre thumbContent
afin de créer un curseur personnalisé. Voici un exemple de commutateur dont le curseur est associé à une icône personnalisée:
@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 } ) }
Dans cette implémentation, l'apparence décochée est identique à l'exemple de la section précédente. Toutefois, une fois cochée, cette implémentation se présente comme suit:
Couleurs personnalisées
L'exemple suivant montre comment utiliser le paramètre "colors" pour modifier la couleur du curseur et de la trajectoire d'un contacteur, en tenant compte du fait que le bouton bascule est coché ou non.
@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, ) ) }
Cette implémentation est la suivante :