React Native中Animated庫的使用

語言: CN / TW / HK
在移動客戶端開發中流暢、有意義的動畫是非常重要的,現實生活中的物體在開始移動和停下來的時候都具有一定的慣性,我們在介面中也可以使用動畫來實現契合物理規律的互動。

官方在開發RN的時候,提供了兩個互補的動畫系統:用於建立精細的互動控制的動畫Animated和用於全域性的佈局動畫LayoutAnimation。

本篇文章主要講Animated動畫庫的使用

執行一個動畫最基本的原理就是呼叫動畫函式改變一個變數值,而這個變數值繫結到控制元件的屬性上,比如透明的、位置等。通過動畫函式改變值從而使控制元件動起來。所以最基本的動畫要有2個屬性 - 變數值(Animated.Value和Animated.ValueXY)區別一個是單個值,一個是向量值(可以理解為二維座標值) - 動畫型別:timing、spring、decay

先簡單看個例子
``` const App = () => { const scaleAnim = useRef(new Animated.Value(0)).current;

const fadeIn = () => { // Will change fadeAnim value to 1 in 2 seconds Animated.timing(scaleAnim, { toValue: 1, duration: 2000, }).start(); };

const fadeOut = () => { // Will change fadeAnim value to 0 in 2 seconds Animated.timing(scaleAnim, { toValue: 0, duration: 2000, }).start(); };

return (