如何修复开关小部件切换滑动

时间:2019-07-17 23:28:13

标签: flutter dart widget

我正在使用应用程序的开关来控制机器应开启的天气。但是,在发送验证消息之前,我不希望它切换。开关的值基于外部服务器,但是仅当用户切换开关并且他们接受验证消息时,才需要更改开关。

如果轻按了交换机,则会显示验证过程,按true会切换开关并更新服务器,而按false不会切换开关或更新服务器。但是,如果滑动开关,则会弹出验证消息,如果按false,则开关(在视觉上)将保持在打开位置。但只要在屏幕上即可。

我尝试更改传递的值,并在开关的onchanged标签内调用setState((){})。

这是我的交换机代码。它现在位于无状态小部件中,如果使用正确名称的http.get和testing = true,widget.currentPartsList [index] .testing将会更改。


    Switch(
                                    value: widget.currentPartsList[index].testing,
                                    dragStartBehavior: DragStartBehavior.down,
                                    onChanged: (val) async {
                                      String url = await getTestURL();
                                      if (val) {
                                        if (await _verifyTesting(context)) {
                                          await http.get(
                                              "$url/tags?name=${widget.currentPartsList[index].name}&testing=true");
                                        } else {
                                          setState(() {
                                            widget.currentPartsList[index].testing =
                                                true;
                                            widget.currentPartsList[index].testing =
                                                false;
                                          });
                                        }
                                      } else {
                                        await http.get(
                                            "$url/tags?name=${widget.currentPartsList[index].name}&testing=false");
                                      }
                                    },
                                  ),

_verifyTesting是一个showDialog小部件。和功能,我会期望的。

0 个答案:

没有答案