【发布时间】:2022-12-04 10:27:32
【问题描述】:
我想在 flutter 中制作一个问题应用程序。在这个应用程序中有一个部分,当单击按钮时,按钮进入问题屏幕,定时器将在超时后启动,返回上一页。它将能够用于所有按钮问题。
我会尝试很多方法 bt 我无法解决这个问题请帮助我
【问题讨论】:
-
你能包括你到目前为止尝试过的代码-sn-p吗?
我想在 flutter 中制作一个问题应用程序。在这个应用程序中有一个部分,当单击按钮时,按钮进入问题屏幕,定时器将在超时后启动,返回上一页。它将能够用于所有按钮问题。
我会尝试很多方法 bt 我无法解决这个问题请帮助我
【问题讨论】:
完整代码
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()));
},
),
),
),
);
}
}
希望这可以帮助。快乐编码:)
【讨论】: