先来看效果:
###第一步
在main方法中用MaterialApp和Scaffold作为应用主框架,这里我就不详细展开说明了,这样做主要是为了显示效果更好,你可以使用你熟悉的Widget控件完成。
void main() {
runApp(MaterialApp(
home: Scaffold(
body: xxx
)
));
}
###第二步
自定义MyDragWidget类,集成StatefulWidget类,主要是为了获取手势坐标之后调用setState()方法刷新Widget的位置。
class MyDragWidget extends StatefulWidget {
@override
State createState() => MyDragState();
}
class MyDragState extends State {
@override
Widget build(BuildContext context) {
return xxx;
}
}
###第三步
使用GestureDetector作为父容器监听手势。
@override
Widget build(BuildContext context) {
return GestureDetector(
onHorizontalDragUpdate: dragEvent,
onVerticalDragUpdate: dragEvent