有时候须要避免用户误点击按钮,特地是用flutter web做前端, 和后端交互的时候.
通过对点击按钮事件的工夫距离做管制,来实现对按钮点击的管制.
办法定义
var lastPopTime = DateTime.now(); void intervalClick(int needTime){ // 防反复提交 if(lastPopTime == null || DateTime.now().difference(lastPopTime) > Duration(seconds: needTime)){ print(lastPopTime); lastPopTime = DateTime.now(); print("容许点击"); }else{ // lastPopTime = DateTime.now(); //如果不正文这行,则强制用户肯定要距离2s后能力胜利点击. 而不是以上一次点击胜利的工夫开始计算. print("请勿反复点击!"); } }
调用
floatingActionButton: FloatingActionButton( onPressed:(){ intervalClick(2); }, tooltip: 'Increment', child: Icon(Icons.add), ),
残缺demo代码
import 'package:flutter/material.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key key, this.title}) : super(key: key); final String title; @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { int _counter = 0; var lastPopTime = DateTime.now(); void intervalClick(int needTime){ // 防反复提交 if(lastPopTime == null || DateTime.now().difference(lastPopTime) > Duration(seconds: needTime)){ print(lastPopTime); lastPopTime = DateTime.now(); print("容许点击"); }else{ // lastPopTime = DateTime.now(); //如果不正文这行,则强制用户肯定要距离2s后能力胜利点击. 而不是以上一次点击胜利的工夫开始计算. print("请勿反复点击!"); } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Text( 'You have pushed the button this many times:', ), Text( '$_counter', style: Theme.of(context).textTheme.headline4, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed:(){ intervalClick(2); }, tooltip: 'Increment', child: Icon(Icons.add), ), ); } }
Flutter 写的app, 须要源码能够私信~~
- 简繁火星字体转换
- 哄女友神器
- 号码测吉凶
- 电视节目直播表