首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在颤振容器中我无法得到x和y的运动坐标。

在颤振容器中我无法得到x和y的运动坐标。
EN

Stack Overflow用户
提问于 2022-01-17 11:47:25
回答 3查看 497关注 0票数 0

,我想得到x和y坐标,只要我的手指在容器内移动。

代码语言:javascript
运行
复制
void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final key = GlobalKey();
  // ignore: non_constant_identifier_names
  double X_Position = 0.00;
  // ignore: non_constant_identifier_names
  double Y_Position = 0.00;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: GestureDetector(
        onPanStart: (details) {
          RenderBox box = key.currentContext?.findRenderObject() as RenderBox;
          Offset position = box.localToGlobal(Offset.zero);
          setState(() {
            X_Position = position.dx;
            Y_Position = position.dy;
          });
        },
        onPanUpdate: (details) {
          RenderBox box = key.currentContext?.findRenderObject() as RenderBox;
          Offset position = box.localToGlobal(Offset.zero);
          setState(() {
            X_Position = position.dx;
            Y_Position = position.dy;
          });
        },
        child: Container(
          width: 500,
          height: 500,
          decoration: BoxDecoration(
            border: Border.all(
              color: Colors.black,
              width: 2,
            ),
          ),
        ),
      ),
    );
  }
}

在上面的代码,我想得到x和y坐标根据我的手指在容器内的移动。但是我得到了以下错误。你能帮忙吗?

EN

Stack Overflow用户

回答已采纳

发布于 2022-01-17 13:04:07

我更喜欢使用来自DragUpdateDetailsonPanUpdate

代码语言:javascript
运行
复制
body: GestureDetector(
  onTap: () {},
  onPanStart: (details) {
    Offset position = details.localPosition;
    setState(() {
      X_Position = position.dx;
      Y_Position = position.dy;
    });
  },
  onPanUpdate: (DragUpdateDetails details) {
    Offset position = details.localPosition;
    setState(() {
      X_Position = position.dx;
      Y_Position = position.dy;
    });
  },
票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70740862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档