O componente Switch permite que os usuários alternem entre dois estados: marcado
e desmarcado. No seu app, você pode usar uma chave para permitir que o usuário faça o
seguinte:
- Ative ou desative uma configuração.
- Ativar ou desativar um recurso.
- Selecione uma opção.
O componente tem duas partes: o botão e a faixa. O thumb é a parte arrastável do interruptor, e o track é o plano de fundo. O usuário pode arrastar o círculo para a esquerda ou direita para mudar o estado da chave. Também é possível tocar no interruptor para verificar e limpar.
Implementação básica
Consulte a referência de Switch para uma definição completa da API. Veja a seguir
alguns dos principais parâmetros que talvez você precise usar:
checked: o estado inicial da chave.onCheckedChange: um callback que é chamado quando o estado da chave muda.enabled: se a chave está ativada ou desativada.colors: as cores usadas para o interruptor.
O exemplo a seguir é uma implementação mínima do elemento combinável Switch.
@Composable fun SwitchMinimalExample() { var checked by remember { mutableStateOf(true) } Switch( checked = checked, onCheckedChange = { checked = it } ) }
Essa implementação aparece da seguinte forma quando desmarcada:
Esta é a aparência quando selecionado:
Implementação avançada
Os principais parâmetros que você pode usar ao implementar uma chave mais avançada são os seguintes:
thumbContent: use para personalizar a aparência do botão quando ele estiver marcado.colors: use para personalizar a cor da faixa e do controle deslizante.
Miniatura personalizada
É possível transmitir qualquer elemento combinável para o parâmetro thumbContent para criar um
polegar personalizado. Confira um exemplo de interruptor que usa um ícone personalizado para o
polegar:
@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 } ) }
Nessa implementação, a aparência desmarcada é igual à do exemplo na seção anterior. No entanto, quando marcada, essa implementação aparece da seguinte forma:
Cores personalizadas
O exemplo a seguir demonstra como usar o parâmetro colors para mudar a cor do botão e da faixa de um interruptor, considerando se ele está marcado.
@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, ) ) }
Essa implementação é mostrada abaixo: