首页 文章

如何获取当前窗口小部件的偏移量

提问于
浏览
4

我试图在用户按下屏幕时绘制小部件 . 目前我通过存储小部件列表来实现这一点,并且当我在添加到小部件列表的手势上触发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高度?如何获得小部件位置或高度/宽度?

1 回答

  • 3

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

    context.findRenderObject()
    

    globalToLocal()
    

    只是FYI全球到本地没有工作,而在一个解决方案我需要使它成为自己的小部件 .

相关问题