《Flutter 动画系列二》Google工程师带你选择Flutter动画控件
对初学者来说,看完这篇文章,我想你脑瓜子一定是嗡嗡的,这都说的是什么啊。 不要急躁,开始的我和你是一样的,第一遍看完,完全不知道在说什么,不明白不要紧,请先收藏此文章,然后先去学习下Flutter内置的25种动画组件。 地址:http://laomengit.com/flutter/module/animated_1/。 不要仅仅是看,要多写,只有写才能发现问题。 当你对动画控件有了一定的了解,在回过头来细细的品一品这篇文章,你会有不一样的感受,你品,你细品。 这篇文章的内容是Google 的Flutter工程师Emily原创,我仅仅是翻译,原创地址:https://www.youtube.com/watch?v=GXIJJkq_H8g。 从广义上来说,Flutter动画组件分为两种类型,
想一想你的动画是基于绘制的,还是基于核心(组件)的:
在Flutter中基于核心(组件)的动画又分为两类:
从上面的分类中,我们不难看出,使用隐式动画控件,代码更简单,而且无需管理AnimationController的生命周期。 如何确定使用隐式动画控件还是显式动画控件?你需要考虑3个问题:
如果你对这三个问题中的任何一个回答“是”,那么你需要使用显式动画控件,否则你就使用隐式动画控件。 一旦你确定了使用显式动画控件或者隐式动画控件,这个时候你就需要找到对应的组件,你需要的组件是否已经在Flutter中内置了? 对于隐式组件来说:
对于显示组件来说:
自定义一个显式的动画组件需要确认这个动画组件是单独一个组件还是组件的一部分,
还有最后一件事情需要考虑:如果你发现由CustomPainter引起的性能问题,你可以像AnimatedWidget一样使用它,但是CustomPainer直接绘制到画布上,而无需标准的小部件构建范例,如果使用的好,可以创建一些整洁、丰富的自定义的效果或者节省性能,但如果使用的不好,你的动画可能引起更多的性能问题,就像是手动管理内存一样,要处理好共享指针,为什么要用这样用,是否有内存问题,这些问题都要考虑清楚。 最后总结如下图: 交流如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。 同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。 Flutter地址:http://laomengit.com 里面包含160多个组件的详细用法。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |