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