Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在DragTarget内重置值?_Flutter - Fatal编程技术网

Flutter 如何在DragTarget内重置值?

Flutter 如何在DragTarget内重置值?,flutter,Flutter,我使用Draggable和DragTarget渲染了两行。第一行包含单词的混杂字母,另一行包含从第一行拖动相应字母后单词的正确顺序,如下所示: 现在,如果我再次点击混淆字母的按钮,我想将第二行(绿色容器)中的数据重置为?,以便用户可以再次拖放,但目前我不确定如何重置数据。以下是点击按钮时在第一行生成混乱字母的代码: RaisedButton( color: Colors.redAccent, shape: Roun

我使用
Draggable
DragTarget
渲染了两行。第一行包含单词的混杂字母,另一行包含从第一行拖动相应字母后单词的正确顺序,如下所示:

现在,如果我再次点击混淆字母的按钮,我想将第二行(绿色容器)中的数据重置为
,以便用户可以再次拖放,但目前我不确定如何重置数据。以下是点击按钮时在第一行生成混乱字母的代码:

RaisedButton(
                    color: Colors.redAccent,
                    shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(20)),
                    onPressed: () {
                      setState(() {
                        _generateJumble(textInput);
                        _controller.clear();
                      });

                    },
                    child: Text('Jumble'),
                  ),


如果用户再次点击按钮,如何将
绿色容器中的值重置为
如果用户再次点击按钮,如何将
绿色容器中的值重置为

在您的
提升按钮中
我想您需要做的就是将
接受数据
设置回false。我也会确保
canidateData
为空,但在你给我们的代码

 RaisedButton(
              color: Colors.redAccent,
              shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(20)),
              onPressed: () {
                setState(() {
                  acceptData = false;
                  //canidateData = []; 
                  _generateJumble(textInput);
                  _controller.clear();
                });
              },
              child: Text('Jumble'),
            )

没问题,如果你觉得这个有用的话,我也会问你同样的问题
Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: inputList.map((i) {
              return Draggable<String>(
                data: i,
                feedback: Container(
                    margin: EdgeInsets.only(right: 5),
                    alignment: Alignment.center,
                    width: 50,
                    height: 50,
                    decoration: BoxDecoration(
                        color: Colors.red,
                        borderRadius: BorderRadius.circular(20)),
                    child: Text(i.toUpperCase(),
                        style: TextStyle(color: Colors.white, fontSize: 18),
                        textAlign: TextAlign.center)),
                child: Container(
                    margin: EdgeInsets.only(right: 5),
                    alignment: Alignment.center,
                    width: 50,
                    height: 50,
                    decoration: BoxDecoration(
                      color: Colors.blue,
                      borderRadius: BorderRadius.circular(20),
                    ),
                    child: Text(i.toUpperCase(),
                        style: TextStyle(color: Colors.white, fontSize: 18),
                        textAlign: TextAlign.center)),
              );
            }).toList(),
          ),
          Padding(
              padding: EdgeInsets.only(top: 15),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.center,
                children: outputList.map((o) {

                  return DragTarget<String>(

                      builder: (BuildContext context,
                          List<String> candidateData,
                          List<dynamic> rejectedData) {

                        if (acceptData == false && candidateData.isEmpty) {
                          return Container(
                              margin: EdgeInsets.only(right: 5),
                              alignment: Alignment.center,
                              width: 50,
                              height: 50,
                              decoration: BoxDecoration(
                                color: Colors.blue,
                                borderRadius: BorderRadius.circular(20),
                              ),
                              child: Text('?',
                                  style: TextStyle(
                                      color: Colors.white, fontSize: 18),
                                  textAlign: TextAlign.center));
                        } else {
                          return Container(
                              margin: EdgeInsets.only(right: 5),
                              alignment: Alignment.center,
                              width: 50,
                              height: 50,
                              decoration: BoxDecoration(
                                color: Colors.green,
                                borderRadius: BorderRadius.circular(20),
                              ),
                              child: Text(o.toUpperCase(),
                                  style: TextStyle(
                                      color: Colors.white, fontSize: 18),
                                  textAlign: TextAlign.center));
                        }
                      },
                      onWillAccept: (data) {
                        if (data == o) {
                          acceptData = true;
                          return true;
                        } else {
                          acceptData = false;
                          return false;
                        }
                      },
                      onAccept: (data) {
                        return true;
                      },
                      onLeave: (data) {});
                }).toList()
              )),
 RaisedButton(
              color: Colors.redAccent,
              shape: RoundedRectangleBorder(
                  borderRadius: BorderRadius.circular(20)),
              onPressed: () {
                setState(() {
                  acceptData = false;
                  //canidateData = []; 
                  _generateJumble(textInput);
                  _controller.clear();
                });
              },
              child: Text('Jumble'),
            )