![在这里插入图片描述](https://img-blog.csdnimg.cn/20200405214029669.gif)
这个长按的时间是100ms左右
import 'dart:async';
import "package:flutter/material.dart";
import 'package:learn_flutter02/extension/size_fit.dart';
import "../extension/int_extension.dart";
main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
HYSizeFit.initialize();
return MaterialApp(
title: "Flutter Demo",
theme: ThemeData(
primarySwatch: Colors.blue, splashColor: Colors.transparent,
),
home: HYHomePage(),
);
}
}
class HYHomePage extends StatefulWidget {
@override
_HYHomePageState createState() => _HYHomePageState();
}
class _HYHomePageState extends State<HYHomePage> {
int time = 0;
bool flag = true;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("title"),
),
body: Center(
child: GestureDetector(
onTap: () {
print("按下");
},
onTapDown: (detail) {
flag = true;
time = 0;
countTime();
print("手势按下");
print(detail.globalPosition);
print(detail.localPosition);
},
onTapUp: (detail) {
print("手势抬起");
print(detail.globalPosition);
print(detail.localPosition);
},
onTapCancel: () {
print("手势取消");
},
onDoubleTap: () {
print("手指双击");
},
onLongPress: () {
flag = false;
print("手指长按");
},
child: Container(
width: 200,
height: 200,
color: Colors.pink
),
)
),
);
}
void countTime() {
time++;
if( flag && time < 500 ) {
Timer(Duration(milliseconds: 1), () {
print(time);
countTime();
});
}
}
}