如何制作动画在屏幕上移动?

时间:2020-02-04 18:11:57

标签: flutter

我有一张固定大小的图像(一张纸牌),我想编写代码,以便用户看到图像从屏幕的一个部分滑到另一部分(例如,发牌并在表面上移动)。如果可能的话,最好以对不同屏幕尺寸适度响应的方式进行。

我所见或学到的大多数内容都涉及Hero小部件或动画,在这些动画中,小部件会改变大小,但会停留在相同的位置。我要问的是不同的东西。

1 个答案:

答案 0 :(得分:0)

您可以使用Flutter内置的animations Animation<double>。在Flutter中,动画对象对屏幕上的内容一无所知。动画是一个抽象类,可以理解其当前值和状态(完成或关闭)。 Animation<double>是最常用的动画类型之一。

例如:

// lib/main.dart (AnimatedLogo)
class AnimatedLogo extends AnimatedWidget {
  AnimatedLogo({Key key, Animation<double> animation})
      : super(key: key, listenable: animation);

  Widget build(BuildContext context) {
    final animation = listenable as Animation<double>;
    return Center(
      child: Container(
        margin: EdgeInsets.symmetric(vertical: 10),
        height: animation.value,
        width: animation.value,
        child: FlutterLogo(),
      ),
    );
  }
}

或者您可以将以下软件包之一导入并使用到项目中: