如何解决如何使用颤振中的计时器激活/停用浮动按钮?
我需要为用户显示浮动按钮,我希望他们在颤动中每小时只使用一次。那么我该怎么做呢?谁能指导我为浮动按钮添加倒计时或计时器方法?
这是我的浮动按钮代码
Widget _floating(BuildContext context,bool isVerified){
if (isVerified)
return FloatingActionButton(
//TODO: customise according to your needs
onPressed:() async{
},tooltip: 'Increment',child: Icon(Icons.add),);
else
return Container();
}
}
解决方法
您可以尝试使用带有 Timer() 的小部件 AnimatedPositioned 小部件来显示和隐藏按钮,例如:
导入
import 'dart:async';
然后在 StatefulWidget 中:
// Inside your StatefulWidget
[...]
Timer t;
double position = -300.0; // or any of your value
@override
void initState() {
super.initState();
t = Timer(const Duration(hours: 1),() {
_position = 0;
}
}
[...]
Widget myAnimatedFloatingActionButton(){
AnimatedPositioned(
duration: const Duration(milliseconds: 300),curve: Curves.ease,left: _position,child: FloatingActionButton(),);
}
[...]
并在您的 onPressed() 中重置计时器。 当然,根据你的需要调整_position和Timer的初始值
,试试这个,
设置默认值,
bool _buttonVisibility = false;
DateTime lastClicked;
FAB,
if (lastClicked == null) {
setState(() => _buttonVisibility = true);
}
floatingActionButton: Visibility(
visible: _buttonVisibility,child: FloatingActionButton(
child: Icon(Icons.plus_one),onPressed: () {
setState(() {
lastClicked = DateTime.now();
_buttonVisibility = false;
// change this seconds with `hours:1`
new Timer(Duration(seconds: 5),() => setState(() => _buttonVisibility = true));
});
},),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。