flutter - 如何设置 onLongPress Flutter 的持续时间
问题描述
我知道onLongPress
会在一段时间后触发(比如 500 毫秒左右)。但我想做的是在用户按下按钮 3 秒时触发一些动作。其实我想设置的持续时间onLongPress
。
ElevatedButton(
onPressed: () => print('ok I\'m just fine'),
onLongPress: () => print('Trigger me when user presses me for like 3 seconds'),
style: ElevatedButton.styleFrom(
primary: Colors.red,
elevation: 4,
),
解决方案
您可以通过这种方式解决您的问题,将 GestureDetector 的 onPanCancel 和 onPanDown 与计时器一起使用。
class _MyHomePageState extends State<MyHomePage> {
Timer _timer;
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: GestureDetector(
onPanCancel: () => _timer?.cancel(),
onPanDown: (_) => {
_timer = Timer(Duration(seconds: 3), () { // time duration
// your function here
})
},
),
);
}
}
让我知道它是否适合你。
推荐阅读
- html - 如何使用包含图像的 CSS flexbox 创建列?
- android - 如何使用 Volley 解析数组中的 JSON 数组?
- r - 如何使用 R 中的线性回归预测未来值
- maps - RentFaster Scalable Map View 连接到数据库
- javascript - 为什么我在 Javascript 中创建新窗口时无法从 JSON 文件加载图像
- java - 将多个源流连接到同一组分支
- sql - 确定三角形的类型
- python - Python:如何删除字典中的符号?
- java - 在 MacOS 中使用 Java 程序执行 mysqldump
- spring - Tomcat 服务未正确重启