countdown.dart 1001B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import 'dart:async';
  2. import 'package:farmer_client/utils/timer.dart';
  3. import 'package:flutter/widgets.dart';
  4. import 'package:get/get.dart';
  5. // Widget countdown(void Function() onFinish) {
  6. // int _countdown = 3;
  7. // late StateSetter _update;
  8. // late Timer _timer;
  9. // _timer = setInterval((_) {
  10. // if (_countdown <= 1) {
  11. // _timer.cancel();
  12. // onFinish();
  13. // return;
  14. // }
  15. //
  16. // _update((){
  17. // _countdown -= 1;
  18. // });
  19. // }, 1000);
  20. //
  21. // return StatefulBuilder(builder: (context, setState) {
  22. // _update = setState;
  23. // return Text(_countdown.toString());
  24. // });
  25. // }
  26. Widget countdown(int sec, void Function() onFinish) {
  27. var _countdown = Rx<int>(sec);
  28. late Timer _timer;
  29. _timer = setInterval((_) {
  30. if (_countdown.value <= 1) {
  31. _timer.cancel();
  32. onFinish();
  33. return;
  34. }
  35. _countdown.value -= 1;
  36. }, 1000);
  37. return Obx(() =>Text(_countdown.value.toString()));
  38. }