当前位置: 首页 > news >正文

第三十一回:GestureDetector Widget

文章目录

  • 概念介绍
  • 使用方法
  • 示例代码

我们在上一章回中介绍了ListView响应事件的内容t,本章回中将介绍 GestureDetector Widget.闲话休提,让我们一起Talk Flutter吧。

概念介绍

我们在这里介绍的GestureDetector是一个事件响应Widget,它可以响应双击事件,长按事件,滑动事件,Flutter中使用GestureDetector类表示该Widget。本章回中将详细介绍它的用法。

顺便说一下我们介绍它的原因,上一章回中介绍了ListView响应事件的内容,主要分为滑动事件和点击事件,当时感觉主ListView响应事件比较复杂,因此想找一个比较方便的方法来响应事件,于是找到了GestureDetector Widget.

使用方法

和其它Widget一样,GestureDetector提供了相关的属性来响应事件,接下来我们分享一些常用的属性:

  • onTap属性:主要用来响应点击事件;
  • onDoubleTap属性:主要用来响应双击事件;
  • onLongPress属性:主要用来响应长按事件;
  • onHorizontalDragStart属性:主要用来响应水平方向的滑动事件;
  • onVerticalDragStart属性:主要用来响应垂直方向的滑动事件;
  • child属性:各种事件的响应载体。

注意:GestureDetector组件是一个容器类Widget,child属性对应的Wiget才是各种事件的载体。因此该属性是必须属性。

示例代码

Widget build(BuildContext context) {return Scaffold(appBar: AppBar(backgroundColor: Colors.purpleAccent,title: const Text("Example of Gesture"),),body: GestureDetector(child: Container(alignment: Alignment.center,color: Colors.greenAccent,width: 300,height: 300,child: const Text("Gesture Test"),),onTap: () {print("onTap");},onDoubleTap: () {print("onDoubleTap");},onLongPress: () => print("onLongPress"),//向坐标值减小方向的滑动就是Horizon?onHorizontalDragStart: (dragDetails) =>print("onHorizontalDragStart: ${dragDetails.localPosition}"),//向坐标值增加方向的滑动就是Verti?onVerticalDragStart: (dragDetails) =>print("onVerticalDragStart: ${dragDetails.localPosition}"),),);
}

上面的代码中我们给属性进行了赋值操作,操作内容就是打印一行日志。编译运行上面的代码,可以得到一个显示"Gesture Test"的文本,对该文本进行双击,长按等操作,可以输出不同的日志。我在这里就不演示程序运行结果了,建议大家自动动手去实践。

看官们,关于GestureDetector Widget相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

http://www.lryc.cn/news/69781.html

相关文章:

  • Java面试知识点(全)-Java并发-多线程JUC三- JUC集合/线程池
  • Android 如何获取有效的DeviceId
  • <SQL>《SQL命令(含例句)精心整理版(2)》
  • 完全自主研发,聚芯微发布3D dToF图像传感器芯片!
  • MySQL 事物(w字)
  • 字节跳动测试岗四面总结....
  • 基于.NetCore开源的Windows的GIF录屏工具
  • PCB 基础~典型的PCB设计流程,典型的PCB制造流程
  • Python logging使用
  • 红黑树的实现原理和应用场景
  • idea插件完成junit代码生成,和springboot代码示例
  • 【Redis面试点总结】
  • 打卡智能中国(五):博士都去哪儿了?
  • [Nacos] Nacos Client获取调用服务的提供者列表 (四)
  • gcc编译一个程序的步骤(嵌入式学习)
  • 邹检验,结构变化识别及其R语言实现
  • 腾讯云,物联网开发平台产品,动态注册步骤
  • Padding, Spacer, Initializer 的使用
  • 少儿编程 中国电子学会图形化编程等级考试Scratch编程四级真题解析(判断题)2023年3月
  • Makefile学习笔记
  • C++ 函数模板基础
  • CUDA torch reinstall 与杂谈
  • [230530] 托福TPO口语真题| TPO66~TPO72|XPO|Task1|20:30~21:00
  • 【FMC201】基于FMC标准的1路CameraLink Full 输入 子卡模块
  • C语言_VS系列编译器写C语言或C++代码产生的一些错误与警告的解决方法(VS2010/VS2019)
  • 从零实现一个数据库(DataBase) Go语言实现版 0.介绍
  • 操作系统-X18 linux日志审计
  • 【Vue工程】011-Axios
  • Cy7 NHS ester水溶性七甲川花菁染料标记活性脂477908-53-5
  • 利用CX-ONE搭建omron PLC仿真环境