Я использую Timer () в Flutter для переключения между экранами, у меня есть screen1, который переключается на screen2 после некоторой задержки и обратно на screen1 после некоторой задержки.
Я хочу, чтобы функциональные возможности работали одинаково, но я хочу, чтобы переключение выполнялось только один раз. Прямо сейчас, после того как я запустил таймер, экраны продолжают переключаться назад и вперед (что логически правильно, так как я не использую никакую функцию для истечения срока действия Таймера ()). Я хочу знать, как истечь таймер (), чтобы он не переключался более одного раза. Вот мой код.
class _SpeedometerScreenState extends State<SpeedometerScreen> {
var duration;
@override
void initState() {
super.initState();
startTimer();
}
startTimer() async {
duration = Duration(seconds: 5);
return Timer(duration, route);
}
route() {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => MapScreen(),
),
);
}
@override
Widget build(BuildContext context) {
return Scaffold(...);
}
}
Любая помощь будет принята с благодарностью. Заранее спасибо.