我正在尝试将数据发送到屏幕上的特定列表项。
逻辑是您单击列表中的特定卡,它会打开第二个带有输入字段的屏幕(请参见下图)。然后,您提交您的输入,它会在第一个屏幕上更改该特定卡的值。
实现此目标的最佳方法是什么?
答案 0 :(得分:1)
您可以这样做:
等待返回而不是仅推送到另一页
final data = await Navigator.push(context,
MaterialPageRoute(builder: (context) => InputScreen()));
setState(()
myList.add(data); //do whatever you want with the return here
});
然后在InputScreen中执行以下操作:
Navigator.of(context).pop(data);
此外,如果您的用户按下手机的后退按钮,它将返回null,因此您需要进行处理。
答案 1 :(得分:0)
您可以通过执行以下步骤来实现:
1)在卡的onTap
功能中,通过添加以下代码来等待结果:
// on tap function of your card
onTap: () async {
// navigate to the second screen and wait for input user enters
final result = await Navigator.push(context
MaterialPageRoute(builder: (context) => SecondScreen()));
// call setstate to see your changes
setState(() {
// add the input to your list
myList.add(result);
);
},
1)在提交按钮的onTap功能中,通过添加以下代码来发送结果:
// ontap function of your submit button
onTap: () {
// value is what the user has inputted in the text field
Navigator.pop(context, value);
},