当前位置: 首页 > 后端技术 > Python

Flutter限制按钮点击的时间间隔

时间:2023-03-25 22:19:43 Python

有时候需要防止用户不小心点击按钮,尤其是使用flutterweb作为前端和后端交互的时候。通过控制点击按钮事件的时间间隔,实现对按钮点击的控制。该方法定义了varlastPopTime=DateTime。现在();voidintervalClick(intneedTime){//防重复提交if(lastPopTime==null||DateTime.now().difference(lastPopTime)>Duration(seconds:needTime)){print(lastPopTime);lastPopTime=DateTime.now();print("允许点击");}else{//lastPopTime=DateTime.now();//如果不注释这一行,2秒后会强制用户点击。而不是上面点击成功的时间开始计时。print("不要重复点击!");}}调用floatingActionButton:FloatingActionButton(onPressed:(){intervalClick(2);},tooltip:'Increment',child:Icon(Icons.add),),完成演示代码import'package:flutter/material.dart';voidmain(){runApp(MyApp());}classMyAppextendsStatelessWidget{//这个小部件是你应用程序的根。@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(title:'FlutterDemo',theme:ThemeData(primarySwatch:Colors.blue,),home:MyHomePage(title:'FlutterDemoHomePage'),);}}classMyHomePageextendsStatefulWidget{MyHomePage({Keykey,this.title}):super(key:key);最终字符串标题;@override_MyHomePageStatecreateState()=>_MyHomePageState();}class_MyHomePageStateextendsState{int_counter=0;varlastPopTime=DateTime.now();voidintervalClick(intneedTime){//防重复提交if(lastPopTime==null||DateTime.now().difference(lastPopTime)>Duration(seconds:needTime)){print(lastPopTime);lastPopTime=DateTime.now();print("允许点击");}else{//lastPopTime=DateTime.now();//如果不注释这一行,必须间隔2s强制用户点击。而不是从上次点击成功的时间开始计算.print("不要重复点击!");}}@overrideWidgetbuild(BuildContextcontext){returnScaffold(appBar:ApppBar(title:Text(widget.title),),body:Center(child:Column(mainAxisAlignment:MainAxisAlignment.center,children:[Text('你已经按了这么多次按钮:',),Text('$_counter',样式:Theme.of(context).textTheme.headline4,),],),),floatingActionButton:FloatingActionButton(onPressed:(){intervalClick(2);},tooltip:'Increment',child:图标(图标.add),),);}}Flutter写的一个app,需要源码的可以私信~~简繁火星字体转换哄女朋友神器号衡量电视剧直播好坏表最好用的笔记软件