【问题标题】:I want to make a timer for a screen after timeout it back to previous page [closed]我想在超时后返回上一页后为屏幕制作一个计时器[关闭]
【发布时间】:2022-12-04 10:27:32
【问题描述】:

我想在 flutter 中制作一个问题应用程序。在这个应用程序中有一个部分,当单击按钮时,按钮进入问题屏幕,定时器将在超时后启动,返回上一页。它将能够用于所有按钮问题。

我会尝试很多方法 bt 我无法解决这个问题请帮助我

【问题讨论】:

  • 你能包括你到目前为止尝试过的代码-sn-p吗?

标签: flutter dart


【解决方案1】:

完整代码

import 'dart:async';
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    const appTitle = 'Help with a meal....';
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: appTitle,
      home: const Page1(),
    );
  }
}

class Page1 extends StatefulWidget {
  const Page1({super.key});

  @override
  State<Page1> createState() => _Page1State();
}

class _Page1State extends State<Page1> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          child: Text("Go to Page2"),
          onPressed: () {
            Navigator.push(
                context, MaterialPageRoute(builder: (context) => Page2()));
          },
        ),
      ),
    );
  }
}


class Page2 extends StatefulWidget {
  const Page2({super.key});

  @override
  State<Page2> createState() => _Page2State();
}

class _Page2State extends State<Page2> {
  late Timer timer;
  @override
  void initState() {
    timer = Timer(const Duration(seconds: 10), () {
      Navigator.push(context, MaterialPageRoute(builder: (context) => Page1()));
      print("changedpage");
    });
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      extendBodyBehindAppBar: true,
      body: Container(
        height: double.infinity,
        width: double.infinity,
        color: Colors.black,
        child: Center(
          child: ElevatedButton(
            child: Text("Go to Page1"),
            onPressed: () {
              timer.cancel();
              Navigator.push(
                  context, MaterialPageRoute(builder: (context) => Page1()));
            },
          ),
        ),
      ),
    );
  }
}

希望这可以帮助。快乐编码:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-24
    • 2023-03-22
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-05
    相关资源
    最近更新 更多