1
resposta

[Projeto] Resolução parcial desafio do curso 1 da formação de flutter

Com essa função que fica dentro de _TaskState e mudando o Colors.blue do container para colorContainer() já resolve a mudança das cores, porem a parte de quando chega ao máximo do progress bar zerar o contador não consegui fazer.

Alguma alma caridosa para me dizer como posso fazer isso?

Color colorContainer() {
    double numberColor = (nivel / (10 * widget.dificuldade));

    if (numberColor > 1 && numberColor <= 2) {
      return Colors.green;
    } else if (numberColor > 2 && numberColor <= 3) {
      return Colors.yellow;
    } else if (numberColor > 3 && numberColor <= 4) {
      return Colors.red;
    } else if (numberColor > 4) {
      return Colors.black;
    } else {
      return Colors.blue;
    }
  }
1 resposta

Olá, Carlos!

Tudo bem?

Desculpa a demora. Estou respondendo esse tópico para ajudar você e outras pessoas com dúvidas como essa, e para organizar o nosso fórum de Flutter.

Muito obrigado por compartilhar o seu desafio com a gente e parabéns por tentar resolver e conseguir evoluir a idéia.

Pelo que entendi, você está buscando uma forma de zerar o contador quando o progress bar chegar ao máximo. Uma maneira de fazer isso é adicionar uma condição no início da função colorContainer() para verificar se o valor do progresso (nivel) é igual ao máximo.

Você pode tentar algo assim:

Color colorContainer() {
  double numberColor = (nivel / (10 * widget.dificuldade));

  if (numberColor > 1 && numberColor <= 2) {
    return Colors.green;
  } else if (numberColor > 2 && numberColor <= 3) {
    return Colors.yellow;
  } else if (numberColor > 3 && numberColor <= 4) {
    return Colors.red;
  } else if (numberColor > 4) {
    nivel = 0; // Zera o contador
    return Colors.black;
  } else {
    return Colors.blue;
  }
}

Dessa forma, quando o numberColor for maior que 4 (ou seja, quando o progresso atingir o máximo), o contador nivel será zerado.

Espero ter ajudado e bons estudos!