Как я могу остановить период таймера во Flutter?

      class _LiftButtonLayerState extends State<LiftButtonLayer> {
  late Timer _timer;
  late double _timeElapsed;
  var isPause = false;
  var isTrue = true;

  @override
  void initState() {
    super.initState();
  }

  repeatDownActivate() {
    _timeElapsed = 0;
    final timer = Timer.periodic(Duration(milliseconds: 200), (timer) {
      liftDownButton.postReq();
      print("down singal 5per 1 second  ");
    });
  }
      Container(
              width: 180,
              height: 60,
              child: GFButton(
                onPressed: () {
                  repeatUpActivate();
                  print('clicked Up Button');
                },
                text: '▲',
                textStyle: const TextStyle(
                  fontSize: 26,
                  color: GFColors.WHITE,
                ),
                shape: GFButtonShape.pills,
                size: GFSize.LARGE,
                buttonBoxShadow: true,
              )),

Я узнал, что могу использовать Timer.cancel() из библиотеки Flutter Timer.

Я сделал функцию для timer.cancel() и применил timer.cancel() к onPressed на новой другой кнопке, но она не работает.

      repeatUpActivate(isTrue) {
  if (isTrue == '200') {
    _timeElapsed = 0;
    var _timer = Timer.periodic(Duration(milliseconds: 200), (timer) {
      liftUpButton.postReq();
      print("down singal 5per 1 second  (ms)");
    });
  } else {
    return false;
  }
}
      child: GFButton(
  onPressed: () {
    repeatUpActivate('900');
  },

0 ответов

Другие вопросы по тегам