flutter如何跨页面传值
时间: 2023-06-02 11:08:34 浏览: 204
Flutter可以通过Navigator.pushNamed()方法跳转页面,并通过arguments参数传递数据,如下所示:
在跳转前的页面:
```dart
Navigator.pushNamed(context, '/second', arguments: {'name': 'Tom', 'age': 18});
```
在跳转后的页面:
```dart
class SecondScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
final Map<String, dynamic> arguments = ModalRoute.of(context).settings.arguments;
final String name = arguments['name'];
final int age = arguments['age'];
return Scaffold(
body: Center(
child: Text('$name is $age years old.'),
),
);
}
}
```
相关问题
flutter 后退传值
在Flutter中,可以使用Navigator.pop方法来实现页面后退,并将值传递给前一个页面。
首先,在当前页面中使用Navigator.pop方法来返回前一个页面,并传递需要的值。例如:
```dart
Navigator.pop(context, "传递的值");
```
在前一个页面中,可以使用Navigator.of(context).push方法来监听返回的值。例如,在前一个页面的按钮点击事件中:
```dart
FlatButton(
onPressed: () {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => NextPage()),
).then((result) {
if (result != null) {
// 这里可以获取到从下一个页面传递回来的值
print(result);
}
});
},
child: Text("下一个页面"),
),
```
在这个例子中,当点击按钮进入下一个页面,然后在下一个页面使用Navigator.pop返回前一个页面时,可以将值作为参数传递给Navigator.pop方法。
在前一个页面中,使用Navigator.of(context).push返回时,可以使用.then方法来监听返回的结果,并获取到从下一个页面传递回来的值。
通过这种方式,可以实现在Flutter中页面的后退传值操作。
阅读全文