Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 颤振:如何限制用户在给定时间段内单击按钮的次数?_Flutter_Dart - Fatal编程技术网

Flutter 颤振:如何限制用户在给定时间段内单击按钮的次数?

Flutter 颤振:如何限制用户在给定时间段内单击按钮的次数?,flutter,dart,Flutter,Dart,我正在使用一个按钮,它在快捷键栏中显示提示。现在如果我快速按下按钮,比如说50次,snackbar会出现几秒钟,然后再次出现,然后再次出现,直到显示50次。我怎样才能防止这种情况 这是我的密码- actions: <Widget>[ Padding( padding: const EdgeInsets.all(8.0), child: RaisedButton(

我正在使用一个按钮,它在快捷键栏中显示提示。现在如果我快速按下按钮,比如说50次,snackbar会出现几秒钟,然后再次出现,然后再次出现,直到显示50次。我怎样才能防止这种情况

这是我的密码-

          actions: <Widget>[
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: RaisedButton(
                elevation: 7,
                color: Colors.black26,
                child: Text('Button'),
                onPressed: () {
                  _scaffoldKey.currentState
                      .showSnackBar(SnackBar(content: Text("Welcome")));
                },
              ),
            ),
          ],

操作:[
填充物(
填充:常数边集全部(8.0),
孩子:升起按钮(
标高:7,
颜色:颜色。黑色,
子项:文本(“按钮”),
已按下:(){
_scaffoldKey.currentState
.showSnackBar(SnackBar(内容:文本(“欢迎”));
},
),
),
],

您可以使用软件包解决您的问题。只需使用冷却功能在有限的时间内禁用按钮按下,以防止多次点击。该软件包还提供了许多其他功能,可用于解决您的问题。

您可以使用该软件包来解决您的问题。只需使用冷却功能在有限的时间内禁用按钮按下,以防止多次点击。软件包还提供了许多其他功能,可用于解决您的问题。

解决此问题的方法多种多样。一个是,你可以很容易地在一段时间内防止多次点击

           bool _enabled = true;


           onPressed: !_enabled
            ? null 
            : () {
              setState(() => _enabled = false);
              _scaffoldKey.currentState
                  .showSnackBar(SnackBar(content: Text("Welcome")));
             
               // Enable it after 1s.
               Timer(Duration(seconds: 1), () => setState(() => _enabled = true));
            },

有不同的方法来解决这个问题。一个是,你可以很容易地在一段时间内防止多次点击

           bool _enabled = true;


           onPressed: !_enabled
            ? null 
            : () {
              setState(() => _enabled = false);
              _scaffoldKey.currentState
                  .showSnackBar(SnackBar(content: Text("Welcome")));
             
               // Enable it after 1s.
               Timer(Duration(seconds: 1), () => setState(() => _enabled = true));
            },

你有没有试过在按钮上应用一个带计时器的BLoC方法?@像鱼一样的哺乳动物没有,我没有试过。你能给出一个详细的答案吗?你有没有试过在按钮上应用一个带计时器的BLoC方法?@像鱼一样的哺乳动物没有,我没有试过。你能发布一个详细的答案吗?谢谢你的简单解决方案!虽然你混淆了真与假,你应该编辑它。谢谢你的简单解决方案!虽然你混淆了真假,但你应该编辑它。