禁用按钮一天



我想在按钮被点击的当天禁用它。例如我有一个主页,用户点击一个按钮,转到另一个页面。在第二页做一些事情,然后返回主页。在此之后,用户今天不能再单击此按钮。我怎样才能在flutter中创建这个逻辑?我在pub.dev上找到了"timer_builder"包,但我无法实现此逻辑。

您可以通过用IgnorePointer包装按钮来实现这一点。

bool _shouldIgnore = false;
IgnorePointer(
ignoring: _shouldIgnore,
child: [YOURBUTTON],
),

我建议你用它来控制开关按钮的时间。在这里,我让按钮在一个动作后锁定整整24小时。您需要此程序包才能在本地保存数据。

在第二页完成操作时:

_lockButton() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
var _date = DateTime.now();
await prefs.setString('lastPressed', _date.toString);
}

在第一页:

//InitState is called when the page is built.
void initState() async{ 
SharedPreferences prefs = await SharedPreferences.getInstance();
//DateTime.parse because you can only save Strings locally.
// .add Adds 12h to the date when the button was last pressed.
var _date= DateTime.parse(prefs.getString('lastPressed')).add(Duration(hours: 12));
if(_date.isBefore(DateTime.now()){
_shoudlIgnore = false;
}
else {_shoudlIgnore = true;}
}

注意,必须在InitState之前初始化变量_shouldIgnore

相关内容

  • 没有找到相关文章

最新更新