Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[DESAFIO] Mudar de Cor (Níveis de Maestria)

Não sei se esta é a melhor solução, mas segue a minha abordagem para solucionar o problema:

  1. Criei um atributo color na classe Task;
  2. Criei um métodos "colorChange" que atrivuia uma cor ao atributo de acordo com o argumento recebido pelo parâmetro "nvl";
  3. Inclui na função anônima do ElevatedButton a chamada do métodos "colorChange";
  4. Passei o atibuto color para a task
class Task extends StatefulWidget {
  final String nome;
  final String foto;
  final int dificuldade;
  Color? color;

  Task(this.nome, this.foto, this.dificuldade, {Key? key, this.color})
      : super(key: key);

  @override
  State<Task> createState() => _TaskState();

  colorChange (double nvl) {
    if (nvl <= 0.2) {
      color = Colors.black;
    } else if (nvl <= 0.4) {
      color = Colors.redAccent;
    } else if (nvl <= 0.6) {
      color = Colors.orange;
    } else if (nvl <= 0.8) {
      color = Colors.cyan;
    } else if (nvl < 1) {
      color = Colors.blue;
    } else {
      color = Colors.green;
    }
  }
}
ElevatedButton(
                            onPressed: () {
                              setState(() {
                                nivel++;
                                widget.colorChange((widget.dificuldade > 0)
                                    ? (nivel / widget.dificuldade) / 10
                                    : 1);
                              });

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2 respostas

Fala Jessé! De boa ?

Cara tu fez uma implementação bem bacana e funcional, parabens :)

solução!

Fala Matheus!

Grato pelo retorno!

Abraço