【发布时间】:2018-11-19 15:19:56
【问题描述】:
我想确保我涵盖所有情况
父窗口小部件读取(并可能使用)孩子的大小或约束
子部件读取(并可能使用)父部件的大小或约束
子部件读取(并可能使用)另一个子部件的大小或约束
解决方案似乎是……
让构建阶段运行
然后构建我要从中检索数据的小部件的大小和约束
然后我中断了常规的阶段序列(因此draw Frame函数不运行)
然后使用我现在拥有的数据重新运行构建阶段
并允许框架绘制
问题是我不知道该怎么做
我早些时候发布了一个与此相关的更具体的问题,我得到了一些回复,布局构建器、自定义多子布局和自定义单子布局...
但这些都是针对特定情况的
布局构建器构建一个小部件树,该树可以依赖于父小部件的大小。所以它只处理案例2
另外两个有限制,父母的大小不能取决于孩子的大小。所以它似乎暗示它只处理案例 2。
那么还有哪些其他解决方案呢?
rect getter 插件可以工作,但不会中断绘图帧,因此会出现一帧卡顿 https://pub.dartlang.org/packages/rect_getter
我还没有尝试过后布局插件,但似乎发生了同样的问题,因为它说它在第一帧之后运行 https://pub.dartlang.org/packages/after_layout
感谢任何帮助! 我不想忍受不断地使用变通方法:/
【问题讨论】:
-
rect_getter和after_layout听起来都像是不需要的插件。他们带来的东西都是开箱即用的衬垫 -
是的,您不需要它们,但它们很容易参考(就像我在这里所做的那样)
-
您的用例看起来很奇怪,并且很容易在布局中出现“死锁”...您能否提供一个具体、详细的示例来说明您要实现的目标?