Flutter:将数据发送回特​​定列表项

时间:2020-05-06 20:49:15

标签: flutter dart flutter-layout

我正在尝试将数据发送到屏幕上的特定列表项。

逻辑是您单击列表中的特定卡,它会打开第二个带有输入字段的屏幕(请参见下图)。然后,您提交您的输入,它会在第一个屏幕上更改该特定卡的值。

实现此目标的最佳方法是什么?

enter image description here enter image description here

2 个答案:

答案 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);
 },