Flutter_点击事件及手势处理

本文详细介绍了Flutter中的点击事件和手势系统。Flutter的手势系统包括原始指针事件和手势,如点击、双击、长按、拖动等。GestureDetector和InkWell等小部件用于处理这些事件。此外,还讨论了手势消歧机制,解决同一位置多个手势识别器的冲突问题。
摘要由CSDN通过智能技术生成

Flutter_点击事件和手势

Flutter中的手势系统有两个独立的层。第一层具有原始指针事件,其描述屏幕上指针(例如,触摸,鼠标和测针)的位置和移动。第二层具有手势,其描述由一个或多个指针移动组成的语义动作。

指针

指针表示用户与设备屏幕交互的原始数据。有四种类型的指针事件:

  • PointerDownEvent 指针已在特定位置与屏幕联系。
  • PointerMoveEvent 指针已从屏幕上的一个位置移动到另一个位置。
  • PointerUpEvent 指针已停止接触屏幕。
  • PointerCancelEvent 来自此指针的输入不再指向此应用。

代码

class MyApp extends StatelessWidget {
  // This widget is the root of your application.

  @override
  Widget build(BuildContext context) {
    return Listener(
      onPointerDown: (down) {
        print("onPointerDownEvent");
      },
      onPointerMove: (move) {
        print("onPointerMove");
      },
      onPointerUp: (up) {
        print("onPointerUp");
      },
      onPointerHover: (hover) {
        print("onPointerHover");
      },
      onPointerExit: (exit) {
        print("onPointerExit");
      },
      onPointerCancel: (cancle){
        print("onPointerCancel");
      },
      onPointerEnter: (enter) {
        print("onPointerEnter");
      },
      child: Center(
        child: Text(
          "test",
          textDirection: TextDirection.ltr,
        ),
      ),
    );
  }
}
在指针向下时,框架会对您的应用程序执行命中测试,以确定指针与屏幕接触的位置存在哪个小部件。然后将指针向下事件(以及该指针的后续事件)调度到命中测试找到的最内部窗口小部件。从那里,事件在树上冒泡,并被分派到从最里面的小部件到树的根的路径上的所有小部件。没有用于取消或停止指针事件进一步调度的机制。

要直接从窗口小部件图层侦听指针事件,请使用 Listener 窗口小部件。但是,通常,请考虑使用手势(如下所述)。

Listener监听属性

behavior → HitTestBehavior
在命中测试期间如何表现。

onPointerCancel → PointerCancelEventListener
当触发on
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值