es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo lograr que el Widget de Countdown/Timer en Flutter cuente hacia atrás.

Estoy tratando de crear un widget simple que cuente hacia atrás desde 10 al ser construido. Esperaba que comenzara a contar hacia atrás, pero sigue atascado en 10. ¿Podría alguien ver qué está saliendo mal aquí?

“`dart
class GameTimer extends StatefulWidget {
const GameTimer({
Key? key,
}) : super(key: key);

@override
State<gametimer> createState() => _GameTimerState();
}

class _GameTimerState extends State<gametimer> {
initState() {
_startTimer();
}

int _counter = 10;
late Timer _timer;

void _startTimer() {
_counter = 10;
_timer = Timer.periodic(Duration(seconds: 1), (timer) {
setState() {
_counter–;
}
});
}

@override
Widget build(BuildContext context) {
return SizedBox(
child: Text('$_counter',
style: TextStyle(
fontSize: 48,
fontWeight: FontWeight.bold,
)));
}
}
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema en este código está en la función setState() dentro del método Timer.periodic(). La función setState() espera una función de retorno, pero falta el paréntesis de retorno. Para solucionar esto, envuelve la función de retorno dentro de un par de paréntesis de esta manera:

    setState(() {
    _counter–;
    });

    Esto permitirá que el contador comience a contar hacia atrás desde 10 una vez que se construya.

Comments are closed.