【问题标题】:Flutter: Send data back to specific list itemFlutter:将数据发送回特​​定列表项
【发布时间】:2020-08-22 00:02:10
【问题描述】:

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

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

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

【问题讨论】:

    标签: flutter dart flutter-layout


    【解决方案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,因此您需要处理它。

    【讨论】:

      【解决方案2】:

      您可以通过以下步骤实现此目的:

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

      【讨论】:

      猜你喜欢
      • 2019-07-09
      • 2021-04-15
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 2019-05-22
      • 2019-04-18
      • 2012-02-13
      相关资源
      最近更新 更多