Flutter Widget - 手势处理(GestureDetector)

  • 利用手势处理的类,可以处理多种交互操作,而且可以自定义 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
    原文作者:ChenME
    原文地址: https://www.jianshu.com/p/2629bf62a792
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞