我正在尝试创建一个灵活的导航系统,该系统使用一页显示从数据库中提取的不同内容。例如,如果我单击Cars按钮,它将导航到固定页面(称为显示页面),并且它将从数据库中提取标题和描述并进行相应显示。因此,通过单击Cars,它将随它一起发送String Cars,因此我可以使用它从数据库中查找所需的东西。
我的问题是,如何将该信息发送到下一页?我想用
ElevatedButton(
child: Text("Cars"),
onPressed: (){
Navigator.push(context, MaterialPageRoute(builder: (context) => HabitPage()));
},
并使用HabitPage('cars(例如,)')发送所需的项目(我研究过C,这就是您发送变量的方式,不确定它是否可以在dart中工作。)
这是我的习惯页面
class HabitPage extends StatefulWidget {
@override
_HabitPageState createState() => _HabitPageState();
}
class _HabitPageState extends State<HabitPage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar
(
title: new Text("HabitPage")
),
body: new Center(
child: new Text("HabitPage"),
),
);
}
}
ElevatedButton(
child: Text("Cars"),
onPressed: (){
Navigator.push(context, MaterialPageRoute(builder: (context) => HabitPage(info: 'Cars'))); // Passing the info as argument
},
class HabitPage extends StatefulWidget {
HabitPage({this.info}) : super(key: key);
final String info; // Variable to receive the info as argument
@override
_HabitPageState createState() => _HabitPageState();
}
class _HabitPageState extends State<HabitPage> {
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar
(
title: new Text("HabitPage ${widget.info}")// Showing the info passed as argument
),
body: new Center(
child: new Text("HabitPage"),
),
);
}
}
在您的代码中进行更改。将来,您可能会使用“命名路由”,因此您将需要本教程。https://flutter.dev/docs/cookbook/navigation/navigate-with-arguments#1-define-the-arguments-you-need-to-pass但是目前,这是解决方案
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句