如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)
Posted
技术标签:
【中文标题】如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)【英文标题】:How to pass List data one screen to another (StatefulWidget) in flutter 【发布时间】:2021-11-07 14:00:01 【问题描述】:我在一个屏幕中有卡片数据,我将卡片文本保存在列表中。所以当我按下(onTap)我的卡片时我需要做文本数据发送到另一个屏幕。在第二个屏幕中我有一些文本字段和卡片值需要填写在此文本字段中。
这是我的卡片屏幕:-
class _LoadDataState extends State<LoadData>
String cupcakeName = '';
String cupcakeDesc = '';
String cupcakePrice = '';
String listDocID = '';
var cakeData = [];
List<String> strArr = [];
@override
Widget build(BuildContext context)
return Container(
child: ListView(
return Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12)),
child: new InkWell(
onTap: () //This is the methord I need to send my data
cupcakeName = (data['cupcake_name']);
cupcakeDesc = (data['description']);
cupcakePrice = (data['price']);
strArr = [cupcakeName, cupcakeDesc, cupcakePrice];
print(strArr);
,
child: Container(
padding: EdgeInsets.all(16),
child: Column(
children: <Widget>[
Text(
data['cupcake_name'],
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.bold,
),
),
).toList(),
),
这是我的第二个屏幕文本字段:-
Widget build(BuildContext context)
return Scaffold(
body: ListView(
shrinkWrap: true,
children: <Widget>[
DropDown(),
Form(
key: _cupcakeKey,
autovalidateMode: AutovalidateMode.always,
child: Padding(
padding: const EdgeInsets.all(16.0),
child: TextFormField(
decoration: InputDecoration(
controller: cupCake,
validator: (_val)
if (_val!.isEmpty)
return "Can't Be Empty";
else
return null;
,
onChanged: (cupcake)
cupcakeName = cupcake;
,
),
),
),
【问题讨论】:
是This你的答案 【参考方案1】:您可以使用 Flutter Navigator 1.0 来实现这一点。 尝试将参数传递到第二页 Pass arguments to a named route
【讨论】:
以上是关于如何在颤动中将列表数据从一个屏幕传递到另一个屏幕(StatefulWidget)的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter 中将数据从一个屏幕传递到另一个屏幕是 null