按钮按下限制

问题描述 投票:0回答:1

如何设置按钮每天点击2次的限制?

我有一个按钮

            IconButton(
              icon: Icon(Icons.arrow_forward_ios), onPressed: () async {

              _CreatePost();
              _showLoaderDialog(context);
            },
            ),

我希望按钮在点击 2 次后 24 小时内处于非活动状态。我该怎么做我会很感激任何帮助。

我试图在很多网站上找到信息,但信息很少,我尝试了很多东西,但没有帮助。

flutter button
1个回答
0
投票

如果我有这个问题,我会解决保存最后两次点击共享首选项或您喜欢的任何数据库的日期时间,并且在构建方法上我会检查旧点击是否超过一天。如果不是,我会禁用该按钮并制作一个 future.delayed 函数以在正确的时间启用该按钮。在 24 小时点击两次后,您需要禁用该按钮并制作一个 future.delayed 函数以在 24 小时后启用该按钮。只需确保在用户更改屏幕时取消 future 功能即可。这里有一个如何取消 future.delayed 函数的例子。

import 'dart:async';

class MyScreen extends StatefulWidget {
  @override
  _MyScreenState createState() => _MyScreenState();
}

class _MyScreenState extends State<MyScreen> {
  final _cancelToken = CancelToken();

  @override
  void dispose() {
    // Cancel the scheduled task when the screen is disposed
    _cancelToken.cancel();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: RaisedButton(
          child: Text('Execute Function X'),
          onPressed: () {
            // Schedule the task to run after 5 seconds
            Future.delayed(Duration(seconds: 5), _executeFunctionX, cancelToken: _cancelToken);
          },
        ),
      ),
    );
  }

  void _executeFunctionX() {
    // This function will only execute if the cancel token is not cancelled
    if (!_cancelToken.isCancelled) {
      // Code to execute
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.