Flutter:从GestureDetector获取本地位置

Flutter:从GestureDetector获取本地位置,第1张

Flutter:从GestureDetector获取本地位置

您可以使用a

RenderObject
,然后将全局位置转换为本地位置,类似于此简单示例

import "package:flutter/material.dart";class Test extends StatefulWidget {  @override  _TestState createState() => new _TestState();}class _TestState extends State<Test> {  _onDragStart(BuildContext context, DragStartDetails start) {    print(start.globalPosition.toString());    RenderBox getBox = context.findRenderObject();    var local = getBox.globalToLocal(start.globalPosition);    print(local.dx.toString() + "|" + local.dy.toString());  }  _onDragUpdate(BuildContext context, DragUpdateDetails update) {    //print(update.globalPosition.toString());    RenderBox getBox = context.findRenderObject();    var local = getBox.globalToLocal(update.globalPosition);    //print(local.dx.toString() + "|" + local.dy.toString());  }  @override  Widget build(BuildContext context) {    return new Scaffold(      body: new Center(        child: new GestureDetector(          child: new Text("Drag"),          onHorizontalDragStart: (DragStartDetails start) =>   _onDragStart(context, start),          onHorizontalDragUpdate: (DragUpdateDetails update) =>   _onDragUpdate(context, update),        ),      ),    );  }}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5016690.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存