Flutter-当子容器渲染时动画化高度变化

Die*_*sco 5 dart flutter flutter-animation

我正在尝试重新创建类似,ExpansionTile但在Card。当我单击卡片时,它将渲染其子代,并且卡片会更改其高度,因此我想为该更改设置动画。

我尝试使用AnimatedContainerGlobalKey知道渲染了子卡的卡片的最终尺寸,然后将新高度设置为,AnimatedContainer但这没有用。

Die*_*sco 7

最后我只需要使用AnimatedSize。它完全复制了我想要的动画。

AnimatedSize(
  vsync: this,
  duration: Duration(milliseconds: 150),
  curve: Curves.fastOutSlowIn,
  child: Container(
    child: Container(
      child: !_isExpanded
          ? null
          : FadeTransition(opacity: animationFade, child: widget.child),
    ),
  ),
);
Run Code Online (Sandbox Code Playgroud)

  • 好一个。当高度变大时,效果非常好。但如果高度变小,它只会使容器周围的小部件产生动画。不是容器本身。 (2认同)