🧩 Exercícios - Cap 19: Cadastro de Treinador: Formulários

📖 Ver Cap 19

🎯 Antes de começar

No Cap 19 você criou CadastroScreen() com validação de nickname (mínimo 3 letras), e nas Práticas Obrigatórias adicionou o campo de “E-mail” (validando @) com KeyboardType.Email, combinando tudo em formularioPronto. Depois de completar as duas Práticas, faça o exercício extra abaixo para adicionar um campo de Senha com texto oculto.


💪 Exercício Extra 1: Campo de Senha com PasswordVisualTransformation (20 min)

Objetivo: Adicionar um terceiro campo ao formulário — a senha — usando visualTransformation para ocultar o que o jogador digita, e somar essa validação a formularioPronto.

Passos:

  1. Adicione o import:
    import androidx.compose.ui.text.input.PasswordVisualTransformation
    
  2. Crie o estado e a regra de validação:
    var senha by remember { mutableStateOf("") }
    val senhaValida = senha.length >= 6
    
  3. Adicione o TextField da senha, com texto oculto:
    TextField(
        value = senha,
        onValueChange = { senha = it },
        label = { Text("Senha") },
        visualTransformation = PasswordVisualTransformation(),
        isError = senha.isNotEmpty() && !senhaValida,
        supportingText = {
            if (senha.isNotEmpty() && !senhaValida) {
                Text("A senha deve ter no mínimo 6 caracteres", color = Color.Red)
            }
        }
    )
    
  4. Atualize formularioPronto para incluir a nova regra:
    val formularioPronto = nickname.length >= 3 && emailValido && senhaValida
    

✅ Resultado Esperado


🆘 Resolução de Problemas Comuns

Erro Causa Solução
Unresolved reference: PasswordVisualTransformation Faltou o import da classe Adicione import androidx.compose.ui.text.input.PasswordVisualTransformation
A senha aparece como texto normal Esqueceu visualTransformation = PasswordVisualTransformation() no TextField Adicione o parâmetro visualTransformation ao TextField da senha
O botão nunca habilita, mesmo com tudo certo formularioPronto ainda usa apenas nickname.length >= 3 && emailValido, sem && senhaValida Garanta que formularioPronto combine as três condições com &&

⬅️ Voltar para Exercícios