在单击按钮时导航到屏幕,但在没有按下按钮的情况下导航


import 'package:flutter/material.dart';
import './home.dart';
class Question extends StatelessWidget {
Question({super.key});
TextEditingController durationController = 
TextEditingController();
TextEditingController lengthController = TextEditingController();
@override
Widget build(BuildContext context) {
return Container(
margin: const EdgeInsets.only(top: 80),
child: Column(
children: <Widget>[
Container(
margin: const EdgeInsets.only(top: 30, right: 180),
child: const Text("enter the period duration",
style: TextStyle(fontSize: 18)),
),
Card(
child: TextField(
decoration: const InputDecoration(
labelText: "period duration",
),
controller: durationController,
keyboardType: TextInputType.number,
)),
Container(
margin: const EdgeInsets.only(top: 30, right: 180),
child: const Text("enter the period length",
style: TextStyle(fontSize: 18)),
),
Card(
child: TextField(
decoration: const InputDecoration(
labelText: "period length",
),
controller: lengthController,
keyboardType: TextInputType.number,
)),
OutlinedButton(
onPressed: () {
//ClearSession();
Navigator.pop(context, true);
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => const Home()));
},
child: const Text("Submit")),
],
),
);

}}//我的目标是按下按钮,下一个屏幕必须出现,在下一个屏幕中应该有3个图标,但不是出现新的屏幕时,点击按钮,它显示的图标页的问题小部件

//下一个屏幕部件类是

import 'package:flutter/material.dart';
class Home extends StatefulWidget {
const Home({super.key});
@override
State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Row(
children: <Widget>[
Container(child: Icon(Icons.home)),
Container(child: Icon(Icons.calendar_month)),
Container(
child: Text(" home button"),
)
],
)
],
),
);

}}

//我的目标是按下按钮,下一个屏幕必须出现,在下一个屏幕中应该有3个图标,但不是出现新的屏幕时,点击按钮,它显示的图标页的问题小部件

如果这是第一个屏幕,并且您使用pop方法,那么您将得到一个错误,因为您没有弹出任何内容。

尝试像下面的例子

一样检查导航弹出的第一种可能性
OutlinedButton(
onPressed: () {
//ClearSession();
if (Navigator.canPop(context)) {
Navigator.pop(context, true);
}
Navigator.pushReplacement(context, 
MaterialPageRoute(builder: (context) => const Home()));
},
child: const Text("Submit"),
),

最新更新