- 利用手势处理的类,可以处理多种交互操作,而且可以自定义 View,当需要一个UI比较的特别而且处理交互较多的 View 时,我觉得使用它是个不二的选择。
- 废话不多说,直接看代码。
// 调用自定义的 Button
Widget renderBody(BuildContext context) {
return new Center(
child: new MyButton(),
);
}
class MyButton extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new GestureDetector(
onLongPress: null, // 长按事件
onTap: () { // 单击事件
Scaffold.of(context).showBottomSheet((BuildContext context) {
return new Container(
color: Color(0xffff639b),
width: double.infinity,
height: 100.0,
child: new Center(
child: Text('I\'m Bottom Sheet'),
),
);
});
},
onDoubleTap: () { // 双击事件
Scaffold.of(context).showSnackBar(new SnackBar(content: new Text('I\'m Snack Bar')));
},
child: new Container(
padding: new EdgeInsets.all(12.0),
child: new Text('Custom Button'),
),
);
}
}
- 除了上述例子中用到的三种事件外,该类还具有以下事件(方法)
child
onTapDown
onTapUp
onTap
onTapCancel
onDoubleTap
onLongPress
onVerticalDragDown
onVerticalDragStart
onVerticalDragUpdate
onVerticalDragEnd
onVerticalDragCancel
onHorizontalDragDown
onHorizontalDragStart
onHorizontalDragUpdate
onHorizontalDragEnd
onHorizontalDragCancel
onPanDown
onPanStart
onPanUpdate
onPanEnd
onPanCancel
onScaleStart
onScaleUpdate
onScaleEnd