flutter - IntrinsicHeight 使尺寸动画损坏
问题描述
我有一个布局,其中有一行,在这一行内,我有一个自定义扩展图块列表和一个自定义小部件,它是一个固定宽度为 5 像素的矩形,矩形的高度必须相同,如膨胀瓦片的高度。为了使矩形与扩展面板的高度相同,我使用了固有高度。所以,结构是这个 IntrinsicHeight: Row: [ExpansionPanel, Container] 问题是当我使用 IntrinsicHeight 时所有动画都被破坏了。扩展磁贴列表中的动画正在运行,但包含该行的容器不会跟随动画调整大小,而是在没有任何中间步骤的情况下进行调整。
我尝试使用不同类型的动画。
Implicit tween animation builder
return TweenAnimationBuilder(
tween: Tween<double>(begin: 0, end: opened ? 1 : 0),
duration: Duration(milliseconds: 600),
builder: (_,double value, __){
return ClipRect(
clipBehavior: Clip.antiAlias,
child: Align(
alignment: Alignment.bottomCenter,
heightFactor: value,
child: value != 0 ? body : null,
),);
}
);
Cross fade animation
return AnimatedCrossFade(
firstChild: body,
secondChild: Container(height: 0,),
duration: Duration(milliseconds: 600),
crossFadeState: opened ? CrossFadeState.showFirst : CrossFadeState.showSecond,
sizeCurve: Curves.ease,
);
更改动画类型并没有解决我的问题。
我的问题如下:
- 是否可以选择使用 IntrinsicHeightWidget 同时制作大小动画
- 如果没有这样的选项,是否可以选择制作一个与扩展磁贴列表具有相同高度但没有 IntrinsicHeight 小部件的 Rectangle 小部件。
我已经拍摄了一段视频来展示问题的样子。
https://www.youtube.com/watch?v=xpQ8QHwHUWQ
我见过类似的问题,但在我的案例中我没有成功实施它们。
解决方案
推荐阅读
- ruby-on-rails - 用户属于组织,只能查看/编辑其公司 Ruby on Rails 添加的项目
- angular - p-confirmDialog 没有得到关注
- python - Heroku 没有检测到静态文件的 Django 设置
- hadoop - 将 RDBMS 中保存的非结构化数据卸载到 Hadoop
- linux - 如何使用“ln”为 linux 上的目录创建链接?
- html - 我可以自定义编辑 WordPress 图像页面吗?
- javascript - 在谷歌图表中自定义haxis标签
- android - android中的Google Pay(Tez)集成“从帐户中扣除金额但收款人未收到”的情况是什么?
- powershell - 更新模块帮助失败
- spring-boot - 使用特定主机名/ip 进行 Eureka 注册