RenderBox无法满足其约束的可能原因是什么?

时间:2019-02-16 17:49:06

标签: dart flutter flutter-layout

我的RenderBox抛出以下断言:

The following assertion was thrown during performLayout():
RenderBox does not meet its constraints.
Constraints: BoxConstraints(w=411.4, h=411.4)
Size: Size(411.4, 411.4)

看着失败的断言的实现,我发现isSatisfiedBy实际上应该不会失败,因为大小等于约束。
因此,我想知道是什么原因造成的。

通过调试,我实际上发现size.height大约是411.42857,而constraints.maxHeight大约是411.42855。因此,我尝试设置大小的地板,但奇怪的是,这样做没有帮助。

1 个答案:

答案 0 :(得分:0)

由于大小是固定的,我通过应用described here解决了它:

SizedBoxed(width: 411.2, height: 411.2, child: MyRenderObjectWidget())

为此,我删除了performLayout的替代并将以下内容添加到我的RenderObject

@override
get sizedByParent => true;

@override
performResize() => size = constraints.smallest;