做自(zì)由與創造的先行者

Flutter 動畫(huà)

Flutter開(kāi)發手冊

動畫(huà)類型

動畫(huà)分爲兩類:基于tween或基于物理(lǐ)的。以下(xià)部分解釋了(le)這(zhè)些(xiē)術語的含義,并列出了(le)一些(xiē)相關的資源。 在一些(xiē)情況下(xià),我們最好(hǎo)的文(wén)檔就是Flutter gallery中的示例代碼。

補間(Tween)動畫(huà)

“介于兩者之間”的簡稱。在補間動畫(huà)中,定義了(le)開(kāi)始點和(hé)結束點、時(shí)間線以及定義轉換時(shí)間和(hé)速度的曲線。然後由框架計(jì)算(suàn)如何從(cóng)開(kāi)始點過渡到(dào)結束點。

上(shàng)面列出的文(wén)檔Flutter動畫(huà)教程 并不是專門(mén)介紹補間動畫(huà)的,但(dàn)在其示例中使用(yòng)了(le)補間動畫(huà)。

基于物理(lǐ)的動畫(huà)

在基于物理(lǐ)的動畫(huà)中,運動被模拟爲與真實世界的行爲相似。例如,當你(nǐ)擲球時(shí),它在何處落地,取決于抛球速度有多快(kuài)、球有多重、距離地面有多遠。 類似地,将連接在彈簧上(shàng)的球落下(xià)(并彈起)與連接到(dào)繩子上(shàng)的球放(fàng)下(xià)的方式也(yě)是不同。

Flutter Gallery在 Material Components , Grid 示例中演示了(le)一個動畫(huà)。從(cóng)網格中選擇其中一個圖像并放(fàng)大(dà),然後您可以甩手或拖動平移圖像。

另外(wài)請(qǐng)參閱 AnimationController.animateWith 和(hé) SpringSimulation的文(wén)檔

常見的動畫(huà)模式

大(dà)多數UX或交互設計(jì)師發現(xiàn)在設計(jì)UI時(shí)有一些(xiē)會(huì)經常使用(yòng)的動畫(huà)模式。本節列出了(le)一些(xiē)常用(yòng)的動畫(huà)模式,并告訴您可以在哪裏了(le)解更多。

動畫(huà)列表或網格

此模式涉及在網格或列表中添加或删除元素時(shí)應用(yòng)動畫(huà)。

AnimatedList 示例此演示來(lái)自(zì)示例程序目錄,演示如何将元素添加到(dào)列表或删除選定元素。 在用(yòng)戶使用(yòng)加号(+)和(hé)減号( - )按鈕時(shí)修該并同步列表。

共享元素轉換

在這(zhè)種模式中,用(yòng)戶從(cóng)頁面中選擇一個元素(通常是一個圖像),然後打開(kāi)所選元素的詳情頁面,在打開(kāi)詳情頁時(shí)使用(yòng)動畫(huà)。 在Flutter中,您可以使用(yòng)Hero widget 輕松實現(xiàn)路由(頁面)之間的共享元素過渡動畫(huà)。

Hero 動畫(huà)如何創建兩種風(fēng)格的 Hero 動畫(huà):在改變位置和(hé)大(dà)小(xiǎo)的同時(shí),hero從(cóng)一頁飛(fēi)到(dào)另一頁hero的邊界從(cóng)一個圓形變成一個正方形,同時(shí)它從(cóng)一個頁面飛(fēi)到(dào)另一個頁面

Flutter Gallery 您可以自(zì)己構建Gallery應用(yòng)程序,也(yě)可以從(cóng)Play商店(diàn)下(xià)載(中國不行)。 其中 Shrine演示了(le)包括hero動畫(huà)的一個例子。

另外(wài)請(qǐng)參閱 Hero, Navigator 和(hé) PageRoute 類的API文(wén)檔。

交錯動畫(huà)

動畫(huà)被分解爲較小(xiǎo)的動作(zuò),其中一些(xiē)動作(zuò)被延遲。較小(xiǎo)的動畫(huà)可以是連續的,或者可以部分或完全重疊。

交錯動畫(huà)(Staggered Animations) this doc is new! NEW

其它資源

在以下(xià)鏈接中了(le)解更多關于Flutter動畫(huà)的信息:

動畫(huà): 技術概述查看(kàn)動畫(huà)庫中的一些(xiē)主要類,以及Flutter的動畫(huà)架構。

動畫(huà)和(hé)運動(Motion) WidgetsFlutter提供的一些(xiē)動畫(huà)widget的目錄

網站(zhàn)建設開(kāi)發|APP設計(jì)開(kāi)發|小(xiǎo)程序建設開(kāi)發
下(xià)一篇:Flutter 自(zì)定義字體
上(shàng)一篇:Flutter 手勢