问题描述
我有一个容器,它从零高度开始,需要在用户交互后展开。
- 我尝试使用 AnimatedContainer / AnimatedSize 并将子小部件的高度从
0
更改为null
,但在这两种情况下,Flutter 都抱怨它无法从0
插值到 {{1 }}。 - 我也尝试过使用 BoxConstraints(使用
null
扩展)而不是明确的高度,在这种情况下,Flutter 抱怨它无法从有限值插入到无限值。 - 我还尝试将 mainAxisSize 设置为 min/max,在这种情况下 Flutter 抱怨
maxHeight = double.infinity
为vsync
。
如何动画扩展一个小部件,使其动态增长到足够大以包裹其内容?如果这不能动态完成,那么有什么安全的方法来调整内容大小,使其在屏幕尺寸上有意义?在 Web 开发中,我知道 null
之类的东西是相对大小的,但在 Flutter 的上下文中,我不知道如何可靠地控制事物的大小。
更新:正如@pskink 所建议的那样,将子组件包装在 Align 小部件中并为 Align 的 heightFactor 参数设置动画即可完成折叠。但是,当倒塌的孩子本身有孩子时,我仍然无法倒塌。例如,Column 小部件根本不使用 ClipRect 进行裁剪(请参阅 https://github.com/flutter/flutter/issues/29357),即使我使用 Wrap 而不是 Column,如果 Wrap 的子项是 Row,那也不起作用。不确定如何让剪辑始终如一地工作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)