對初學者來講,看完這篇文章,我想你腦瓜子必定是嗡嗡的,這都說的是什麼啊。git
不要急躁,開始的我和你是同樣的,第一遍看完,徹底不知道在說什麼,不明白沒關係,請先收藏此文章,而後先去學習下Flutter內置的25種動畫組件。程序員
地址:http://laomengit.com/flutter/module/animated_1/。微信
不要僅僅是看,要多寫,只有寫才能發現問題。工具
當你對動畫控件有了必定的瞭解,在回過頭來細細的品一品這篇文章,你會有不同的感覺,你品,你細品。佈局
這篇文章的內容是Google 的Flutter工程師Emily原創,我僅僅是翻譯,原創地址:https://www.youtube.com/watch?v=GXIJJkq_H8g。性能
從廣義上來講,Flutter動畫組件分爲兩種類型,學習
想想你的動畫是基於繪製的,仍是基於核心(組件)的:動畫
在Flutter中基於核心(組件)的動畫又分爲兩類:ui
從上面的分類中,咱們不難看出,使用隱式動畫控件,代碼更簡單,並且無需管理AnimationController的生命週期。spa
如何肯定使用隱式動畫控件仍是顯式動畫控件?你須要考慮3個問題:
若是你對這三個問題中的任何一個回答「是」,那麼你須要使用顯式動畫控件,不然你就使用隱式動畫控件。
一旦你肯定了使用顯式動畫控件或者隱式動畫控件,這個時候你就須要找到對應的組件,你須要的組件是否已經在Flutter中內置了?
對於隱式組件來講:
對於顯示組件來講:
自定義一個顯式的動畫組件須要確認這個動畫組件是單獨一個組件仍是組件的一部分,
還有最後一件事情須要考慮:若是你發現由CustomPainter引發的性能問題,你能夠像AnimatedWidget同樣使用它,可是CustomPainer直接繪製到畫布上,而無需標準的小部件構建範例,若是使用的好,能夠建立一些整潔、豐富的自定義的效果或者節省性能,但若是使用的很差,你的動畫可能引發更多的性能問題,就像是手動管理內存同樣,要處理好共享指針,爲何要用這樣用,是否有內存問題,這些問題都要考慮清楚。
最後總結以下圖:
若是你對Flutter還有疑問或者技術方面的疑惑,歡迎加入Flutter交流羣(微信:laomengit)。
同時也歡迎關注個人Flutter公衆號【老孟程序員】,公衆號首發Flutter的相關內容。
Flutter地址:http://laomengit.com 裏面包含160多個組件的詳細用法。