每当用户按下屏幕时,我就尝试绘制一个小部件。
目前,我通过存储小部件列表来做到这一点,当 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() 来堆叠时,位置是基于不包括应用程序栏偏移量的屏幕。有没有办法获得堆栈的初始 x/y 位置?或者有没有办法获得应用栏的高度?如何获取小部件的位置或高度/宽度?
对于其他有同样问题的人来说,我需要创建自己的小部件并使用
context.findRenderObject()
and
globalToLocal()
仅供参考,全局到本地在我需要使其成为自己的小部件的一个解决方案中不起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)