getTranslateTransform

getLayout方法一样,这个方法也是Animated.ValueXY实例才有的方法。

这个方法的功能是这样的:

this._animatedValue = new Animated.ValueXY();

transform: [
    {
        translateX: this._animatedValue.x
    },
    {
        translateY: this._animatedValue.y
    }
]

不适用getTranslateTransform,使用上面的代码实现动画是这样的:

<Animated.View style={{transform: [
    {
        translateX: this._animatedValue.x
    },
    {
        translateY: this._animatedValue.y
    }
]}} />

使用getTranslateTransform方法会减少很多的代码:

<Animated.Value style={{
   transform: this._animatedValue.getTranslateTransform()
 }} />

为什么使用translate

无论组件的外形如何,只要使用translate就可以让这个组件实现位移。当你使用getLayout的时候,该组件必须给position设置为'absolute'。然而,一个你想要移动的组件不是一定要绝对定位的。

如果你已经有一个绝对定位的组件了。你想要移动它但是是又不想改变它的布局。碧柔,你有一个全屏组件定位是这样的:{position: 'absolute', left: 0, right: 0, top: 0, bottom: 0},但是要使用动画把它移出屏幕。这个时候就以使用translateX/translateY来移动这个组件了,而且不影响这个组件的布局。

results matching ""

    No results matching ""