我有一个从零高度开始的容器,需要在用户交互后展开。
- 我尝试使用 AnimatedContainer / AnimatedSize 并将子小部件的高度从
0
to更改为null
,但在这两种情况下,Flutter 都抱怨它不能从0
to插入null
。 - 我也尝试过使用 BoxConstraints (使用扩展的 using
maxHeight = double.infinity
)而不是显式高度,在这种情况下,Flutter 抱怨它无法从有限值内插到不定值。 - 我也尝试将 mainAxisSize 设置为 min/max,在这种情况下 Flutter 抱怨说
vsync
是null
.
如何动画扩展小部件,使其动态增长到足以包装其内容?如果这不能动态完成,那么有什么安全的方法来调整内容大小以使它们在不同的屏幕尺寸上都有意义?在 web 开发中,我知道诸如em
相对大小之类的东西,但是在 Flutter 的上下文中,我看不到如何可靠地控制事物的大小。
更新:正如@pskink 所建议的,将孩子包装在 Align 小部件中并为 Align 的 heightFactor 参数设置动画即可完成折叠。但是,当崩溃的孩子本身有孩子时,我仍然无法崩溃工作。例如,Column 小部件根本不使用 ClipRect 剪辑(请参阅https://github.com/flutter/flutter/issues/29357),即使我使用 Wrap 而不是 Column,如果 Wrap 的孩子是行。不知道如何让剪辑始终如一地工作。