Flutter Widget 之 Animations

271 阅读1分钟

Flutter提供给你无数的方法来创建动画,这些动画可以定制到单帧的水平。

但有时候,你想要的只是一个默认过渡,一些看起来很棒很自然的动画,让你的应用程序更好看、可用性更高。

你知道谁会花很多时间去思考好看又好用的动画吗?

材料设计团队,该团队还维护了一个名为animations的Flutter包

这个包中有一些微妙但看起来很酷的动画,它们将帮助人们了解如何操作你的应用程序。

例如,假设你想从屏幕上的一个小元素过渡到一个详细页面,你可以使用OpenContainer,给它builders并返回closed和open小部件。

closed小部件在被点击打开之前,它可是是一张卡片,或一个按钮,或者一段文字——任何小部件

这个小部件将扩展到open部件,同样,它可以是任何小部件。

你可以使用builder来定义小部件,这为你提供了BuildContext和一个回调,允许你程式化地打开和关闭

ezgif.com-gif-maker.gif

OpenContainer(
    closedBuilder: (context, action) {
        return Text('Small widget');
    },
    openBuilder: (context, action) {
        reutrn Text('Big screen');
    }
);

当然,你可以使用Colors、Duration和其他回调等进一步定制过渡

OpenContainer(
    openColor: Colors.pink,
    transitionDuration: Duration(seconds: 1),
    transitionType: ContainerTransitionType.fadeThrough,
    closedBuilder: (context, action) {
        return Text('Small widget');
    },
    openBuilder: (context, action) {
        return Text('Big widget');
    }
);

但是即使没有定制,你也可以毫无困难地做到过渡。

这只是package:animations提供的小部件之一

如果想了解有关Animations 的内容,或者关于Flutter的其他功能,请访问flutter.dev

原文翻译自视频:视频地址