Animation 如何在flatter中设置小部件运动的动画?

Animation 如何在flatter中设置小部件运动的动画?,animation,flutter,dart,Animation,Flutter,Dart,我不熟悉颤振中的动画,也不知道如何在两种状态之间设置小部件运动的动画 如果我运行下面的代码,列的第一个子项将不可见,并且RaisedButton将出现在第一个小部件之前的位置。 我如何告诉颤振设置动画,使升起的按钮向上移动,而不是仅仅出现在那里 在我看来,我找到的所有解决方案都太复杂了 bool visible = true; Widget widget1, widget2; Column( mainAxisAlignment: MainAxisAlignment.start, chi

我不熟悉颤振中的动画,也不知道如何在两种状态之间设置小部件运动的动画

如果我运行下面的代码,列的第一个子项将不可见,并且RaisedButton将出现在第一个小部件之前的位置。 我如何告诉颤振设置动画,使升起的按钮向上移动,而不是仅仅出现在那里

在我看来,我找到的所有解决方案都太复杂了

bool visible = true;
Widget widget1, widget2;

Column(
  mainAxisAlignment: MainAxisAlignment.start,
  children: <Widget>[
    Visibility(
      visible: visible,
      child: widget1,
    ),
    RaisedButton(
      child: widget2,
      onPressed: () => setState(() => visible = !visible),
    ),
  ],
)
我希望这有帮助

  double height = 200;

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        AnimatedContainer(
          duration: Duration(seconds: 3),
          height: height,
          child: Container(height: 200, width: 200, color: Colors.blue),
        ),
        RaisedButton(
          child: Container(height: 200, width: 200, color: Colors.yellow),
          onPressed: () => setState(() => height = height == 0 ? 200 : 0),
        ),
      ],
    );
  }
结果如下:

我希望这有帮助

  double height = 200;

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        AnimatedContainer(
          duration: Duration(seconds: 3),
          height: height,
          child: Container(height: 200, width: 200, color: Colors.blue),
        ),
        RaisedButton(
          child: Container(height: 200, width: 200, color: Colors.yellow),
          onPressed: () => setState(() => height = height == 0 ? 200 : 0),
        ),
      ],
    );
  }
结果如下:


在我的理解中,您需要给动画生成器一个偏移量。我希望小部件从起点第一个状态移动到终点第二个状态。在我的理解中,您需要给动画生成器一个偏移量。我希望小部件从起点第一状态移动到终点第二状态。