动画容器 |基于儿童身高的动画

Posted

技术标签:

【中文标题】动画容器 |基于儿童身高的动画【英文标题】:Animatedcontainer | Animated Based on Child's Height 【发布时间】:2020-05-01 15:26:12 【问题描述】:

我想根据孩子的身高为容器高度设置动画,这可能吗?

请看下面的例子...卡片 > 列 > [Container , Animatedcontainer]

如何在 AnimatedContainer 上设置 XYZ 值以匹配孩子的身高或重置父窗口小部件。

Widget example()
return Card(
margin: EdgeInsets.symmetric(horizontal: 10, vertical: 3),
elevation: 5,
shape: RoundedRectangleBorder(
  borderRadius: BorderRadius.circular(15.0),
),
child: Column(
  children: <Widget>[
    Container(
      height: 400,
      child: Text('Something with height 400'),
    ),
    AnimatedContainer(
    duration: Duration(seconds: 2),
    width: selected ? xyz : 100.0,
    height: selected ? xyz : 100.0,
    color: selected ? Colors.red : Colors.blue,
    alignment: selected ? Alignment.center : AlignmentDirectional.topCenter,
    curve: Curves.fastOutSlowIn,
    child: FlutterLogo(size: 75),
  ),
  ]
 )

【问题讨论】:

【参考方案1】:

您似乎缺少的是使用 setState 使 Flutter 重新渲染并启动动画:

AnimatedContainer(
  duration: Duration(seconds: 2),
  width: selected ? xyz : 100.0,
  height: selected ? xyz : 100.0,
  color: selected ? Colors.red : Colors.blue,
  alignment: selected ? Alignment.center : AlignmentDirectional.topCenter,
  curve: Curves.fastOutSlowIn,
  child: FlutterLogo(size: 75),
),
RaisedButton(
  child: Text('Change dimensions'),
  onPressed: ()
    setState(() 
      selected = !selected;
    );
  ,
),

【讨论】:

是的,我正在尝试找到一种方法来使用基于子内容高度的“动画”来调整容器的大小。 我已经更改了答案以澄清您需要做什么。 @L.kifa 如果我的回答解决了您的问题,请记住将其标记为正确。这将帮助未来的用户解决同样的问题。 不,它实际上并没有回答这个问题。该问题与设置状态无关,它与根据子内容高度调整父容器大小有关。 我理解 setState "selected" 来触发动画,但我的问题是关于宽度和高度的 XYZ 值,以及如何根据孩子的高度填充该值。我希望这可以解释我的问题。【参考方案2】:

我曾尝试使用 AnimatedContainer 来做同样的事情,但事实证明没有办法轻松做到这一点。相反,您可以使用 AnimatedSize 获得所需的结果。因此,一旦 YourChild() 高度或宽度发生变化,就会按照 curveduration 参数中的指定执行动画过渡。

动画尺寸( 曲线:Curves.easeIn, 持续时间:常量持续时间(毫秒:100), 孩子:你的孩子(), )

【讨论】:

以上是关于动画容器 |基于儿童身高的动画的主要内容,如果未能解决你的问题,请参考以下文章

动画弹性基础但保持儿童的初始高度/宽度

MotionLayout 和 ConstraintLayout 不围绕儿童高度设置动画

过滤掉动画儿童的jquery选择器

python Kivy BoxLayout设置高度等于儿童身高

儿童英语学习方法----读原版学英语

西安都有哪些动画制作公司?最好有邮箱.谢谢啦