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
来移动这个组件了,而且不影响这个组件的布局。