2017-03-22 17 views
7

我正在使用react-native的LayoutAnimation來實現自定義開關組件。React-Native:LayoutAnimation

enter image description here

我使用LayoutAnimation像這樣的動畫圓的運動:

componentWillUpdate() { 
    let switchAnimation = { 
    duration: 250, 
    update: { 
     type: LayoutAnimation.Types.linear, 
     property: LayoutAnimation.Properties.opacity, 
    }, 
    }; 
    LayoutAnimation.configureNext(switchAnimation); 
} 

開關是它自己的組件。它接受使用css(justifyContent flex-start或flex-end)將圓圈設置在左側或右側的道具

問題在我看來,當交換機改變數值時,其他組件也會改變:也就是說,當交換機被擊中:

1)切換改變

2)的圖標改變

3)某些文本改變

所有上述動畫的。我想減少動畫隻影響開關

更新:我嘗試過使用動畫API,但它似乎不支持動畫flex屬性。廣泛使用The Animated API是否真的沒有人?

+0

LayoutAnimation在這裏不是正確的方法。考慮使用動畫API https://facebook.github.io/react-native/docs/animations.html –

+0

文檔中的示例使用組件狀態。這對我的情況如何工作?我應該將一個道具映射到一個狀態變量並從那裏創建一個動畫? –

回答

1

LayoutAnimation在底層做了很多。除非您願意通過源代碼,否則您可以設置和更改邊距值以便移動容器中的圓圈。您可以在組件內進行所有計算,並將一些樣式顯示爲道具。

+0

謝謝。似乎是唯一可行的解​​決方案 –