如何通过使用上下文获取BoxConstraints?

时间:2019-12-22 16:37:43

标签: flutter flutter-layout

我想通过在函数中使用上下文来获取约束(在构建方法之前)。

build()方法中,如果我们一开始就使用LayoutBuilder,它将提供孩子可以占用的constraints。然后可以直接通过context获取它们吗?

如果没有,请说明LayoutBuilder如何提供此constraints

1 个答案:

答案 0 :(得分:0)

否,不能仅使用context

小部件无法:

  • 获得约束
  • 阅读他们的位置
  • 阅读他们的父母/兄弟姐妹/...

LayoutBuilder能够将BoxConstraint传递到小部件树的唯一原因是它使用的是不是小部件:

RenderObject

这样,如果您的目标是通过直接使用context而不是LayoutBuilder来删除一些样板,那就算了。

达到类似于LayoutBuilder的目标相对复杂且冗长。