这一篇简单说说Flutter的手势。
自身支持手势的Widget
如果某个Widget本身支持事件监测,那直接给他一个函数,并在这个函数中实现响应的方法。
例如 Button
RaisedButton
@override
Widget build(BuildContext context) {
return RaisedButton(
onPressed: () {
print("click");
},
child: Text("Button"),
);
}
如iOS添加手势
这里我们需要使用 GestureDetector 来实现,在外面包裹 GestureDetector 会使Widget可以响应事件 。
class SampleApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: GestureDetector(
child: FlutterLogo(
size: 200.0,
),
onTap: () {
print("tap");
},
),
),
);
}
}
GestureDetector 的其他响应事件
Tapping
onTapDown — 在特定位置轻触手势接触了屏幕。
onTapUp — 在特定位置产生了一个轻触手势,并停止接触屏幕。
onTap — 产生了一个轻触手势。
onTapCancel — 触发了 onTapDown 但没能触发 tap。
Double tapping
onDoubleTap — 用户在同一个位置快速点击了两下屏幕。
Long pressing
onLongPress — 用户在同一个位置长时间接触屏幕。
Vertical dragging
onVerticalDragStart — 接触了屏幕,并且可能会垂直移动。
onVerticalDragUpdate — 接触了屏幕,并继续在垂直方向移动。
onVerticalDragEnd — 之前接触了屏幕并垂直移动,并在停止接触屏幕前以某个垂直的速度移动。
Horizontal dragging
onHorizontalDragStart — 接触了屏幕,并且可能会水平移动。
onHorizontalDragUpdate — 接触了屏幕,并继续在水平方向移动。
onHorizontalDragEnd — 之前接触屏幕并水平移动的触摸点与屏幕分离。
网友评论