flutter - 当我使用 MaterialPageRoute 时我的文本小部件没有显示
问题描述
问题 当我使用 MaterialPageRoute 时,第 2 页中的文本小部件未显示。我在这里做错了什么?
我的主页
class _MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.push(context,
new MaterialPageRoute(builder: (context) => Page2()));
},
),
body: Container(
child: Center(
child: Text(
'Page 1',
style: TextStyle(fontSize: 30.0),
)),
)));
}
}
第2页(我打印“移至第1页”的消息实际上打印到屏幕上。
import 'package:flutter/material.dart';
class Page2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
var black = Colors.black;
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.pop(context);
print("Moved to page 1");
},
),
backgroundColor: Colors.blue,
body: Container(
child: Center(
child: Text(
'Page 2',
style: TextStyle(
fontSize: 2.0,
),
),
),
));
}
}
谢谢
解决方案
尝试移除 home body 并将其放入这样的新类中
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Page1());
}
}
class Page1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
print('a');
Navigator.push(context,
MaterialPageRoute(builder: (context) => Page2()));
},
),
body: Container(
child: Center(
child: Text(
'Page 1',
style: TextStyle(fontSize: 30.0),
)),
));
}
}
class Page2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
var black = Colors.black;
return Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () {
Navigator.pop(context);
print("Moved to page 1");
},
),
backgroundColor: Colors.blue,
body: Container(
child: Center(
child: Text(
'Page 2',
style: TextStyle(
fontSize: 2.0,
),
),
),
));
}
}
这是由于您传递给导航器的上下文而发生的。有关更多信息,您可以阅读 使用不包含 Navigator 的上下文请求的此 Navigator 操作
推荐阅读
- mysql - 我在选择这个更新时做错了什么
- c# - AuthenticationHandler 每次都调用,甚至不需要 Controller 授权
- android - android studio 中 android 应用程序的 ip 摄像头视图
- java - 为什么不让返回类型 String 允许我在函数中返回字符串
- javascript - 在反应中管理嵌套组件中的状态
- java - Proguard for java混淆,从windows迁移到mac,找不到classes.jar
- reactjs - 反应路由器 - 重定向除一个以外的所有路由
- java - 在 Spinner itemSelected 上重新加载数据
- javascript - Uncaught (in promise) ReferenceError: isBlack is not defined
- android - 什么是通过键对 SparseArray 进行排序的有效方法?