首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么LayoutBuilder不能有一个内在的维度?

为什么LayoutBuilder不能有一个内在的维度?
EN

Stack Overflow用户
提问于 2022-01-06 22:13:21
回答 2查看 4.1K关注 0票数 3

_RenderLayoutBuilder In layout_builder.dart的文档中,它说:

代码语言:javascript
运行
复制
'LayoutBuilder does not support returning intrinsic dimensions.\n'
'Calculating the intrinsic dimensions would require running the layout '
'callback speculatively, which might mutate the live render object tree.'

在这种情况下,“布局回调”是什么,为什么要进行推测性的调用?

我正试图研究如何实现一个与LayoutBuilder类似的自定义LayoutBuilder,它使用构建器回调构建其子结构,并支持内部维度。

EN

回答 2

Stack Overflow用户

发布于 2022-01-06 22:40:47

“布局回调”是传递给builder的LayoutBuilder函数。

计算任何RenderObject的内在维度都涉及到一个推测的布局传递。LayoutBuilder在布局时构建其小部件子树,如果其约束条件发生变化,则可以对呈现对象树进行变异。由于这种推测的布局传递几乎肯定使用了与最终将在布局中使用的约束不同的约束,所以LayoutBuilder不可能以您想要的方式工作。

这是LayoutBuilder如何工作的基础,所以我怀疑您是否能够修改它以支持内在维度。根据您计划支持的布局更改,可以考虑将此自定义RenderBox建立在CustomMultiChildLayout上。

票数 2
EN

Stack Overflow用户

发布于 2022-08-31 03:21:39

您可以尝试用Column包装小部件,并设置mainAxisSizeMainAxisSize.min,这样就可以根据其内在更改高的arlertDialog

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70614252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档