您好,登錄后才能下訂單哦!
這篇文章主要講解了“怎么選擇Flutter動畫控件”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么選擇Flutter動畫控件”吧!
從廣義上來說,Flutter動畫組件分為兩種類型,
Drawing-based animations:基于繪制的動畫,就像是畫畫一樣,通常都是獨立的控件,例如游戲角色或者很難用純碎的代碼來完成的效果。
Core-based animations:基于核心的動畫,它面向組件,基于標準的布局和樣式,從本質上說,傾向于增強控件的外觀和過渡效果,而不是自己充當獨立的控件。
想一想你的動畫是基于繪制的,還是基于核心(組件)的:
如果是基于繪制的,而且你的團隊中有專門的設計人員提供素材,建議你使用第三方工具,比如Rive和Lottie,這些庫可以方便的導入資源來構建動畫。
如果是基于核心(組件)的,涉及組件的變化,比如顏色、形狀、位置的變化等。
在Flutter中基于核心(組件)的動畫又分為兩類:
隱式動畫控件:只需提供給組件開始、結束值,系統執行動畫,比如AnimatedAlign等組件。
顯式動畫控件:需要設置AnimationController,控制動畫的執行,使用顯式動畫可以完成任何隱式動畫的效果,甚至功能更豐富一些,不過你需要管理該動畫的AnimationController生命周期,AnimationController并不是一個控件,所以需要將其放在stateful 控件中。
從上面的分類中,我們不難看出,使用隱式動畫控件,代碼更簡單,而且無需管理AnimationController的生命周期。
如何確定使用隱式動畫控件還是顯式動畫控件?你需要考慮3個問題:
動畫是否一直重復,比如音樂播放。
動畫值是否不連續,比如一個圓圈,不連續的尺寸變化:小->大,小->大,小->大。連續的尺寸變化:小->大->小->大。
是否有多個組件一起動畫。
如果你對這三個問題中的任何一個回答“是”,那么你需要使用顯式動畫控件,否則你就使用隱式動畫控件。
一旦你確定了使用顯式動畫控件或者隱式動畫控件,這個時候你就需要找到對應的組件,你需要的組件是否已經在Flutter中內置了?
對于隱式組件來說:
已經內置:直接使用,當然也可以看下AnimatedContainer組件,AnimatedContainer是非常強大且用途廣泛的動畫組件。
未內置:可以使用TweenAnimationBuilder創建一個自定義的動畫控件。
對于顯示組件來說:
內置:直接使用相關組件,比如xxxTransition組件。
未內置:自定義一個動畫控件。
自定義一個顯式的動畫組件需要確認這個動畫組件是單獨一個組件還是組件的一部分,
單獨一個顯示組件:你應該繼承 AnimatedWidget來實現。
組件的一部分:使用AnimatedBuilder來實現。
還有最后一件事情需要考慮:如果你發現由CustomPainter引起的性能問題,你可以像AnimatedWidget一樣使用它,但是CustomPainer直接繪制到畫布上,而無需標準的小部件構建范例,如果使用的好,可以創建一些整潔、豐富的自定義的效果或者節省性能,但如果使用的不好,你的動畫可能引起更多的性能問題,就像是手動管理內存一樣,要處理好共享指針,為什么要用這樣用,是否有內存問題,這些問題都要考慮清楚。
感謝各位的閱讀,以上就是“怎么選擇Flutter動畫控件”的內容了,經過本文的學習后,相信大家對怎么選擇Flutter動畫控件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。