dart - 如何获取当前小部件的偏移量

每当用户按下屏幕时,我都会尝试绘制一个小部件。 目前我通过存储一个小部件列表来做到这一点,当 ontapup 在手势上被触发时,我正在添加到一个小部件列表中。

Widget build(BuildContext context) {
Widget draw = new Text("A");
List<Widget> children = new List<Widget>();
return new Scaffold(
  appBar: new AppBar(
    title: const Text('Heading'),
    leading: new Icon(Icons.question_answer),
  ),
  body: new GestureDetector(
    onTapUp: (details) {
      setState(() {
          children.add(new Positioned(
            left: details.globalPosition.dx,
            top: details.globalPosition.dy,
            child: draw,
          ));
         });
    },
    child: new Stack(children: children)
    ...

所以我的代码正在工作,当我单击时我正在绘制小部件,但我的问题是当添加新的 Positioned() 到堆栈时,位置基于不包括 appbar 偏移的屏幕。有没有办法让堆栈初始 x/y 位置?或者有没有办法获得appbars的高度?如何获取小部件位置或高度/宽度?​​

最佳答案

对于其他有同样问题的人来说,我需要创建自己的小部件并使用

context.findRenderObject() 

globalToLocal()

仅供引用,全局到本地不起作用,而在我需要使其成为自己的小部件的一种解决方案中。

https://stackoverflow.com/questions/47782591/

相关文章:

flutter - 如何在单元测试期间访问 StatefulWidget 的状态内容?

dart - 如何运行 `source_gen` ?

flutter - 找出 ListView 中的哪些项目是可见的

flutter - 将文本包裹在一个圆圈内 (Flutter)

android - 如何在 flutter 和平台之间传输麦克风数据?

charts - 如何在 flutter 中制作动态图表?

flutter - 通过 Firebase 使用 Google 登录时, 'ApiExpceptio

dart - ScrollController 如何检测滚动开始、停止和滚动?

cookies - Dart/Flutter 身份验证实现

flutter - 如何使 Bottom Sheet 格的高度跟随 JSON 的项目数量