Animated.event

Animated.event的定义是这样的:

static event(argMapping, config?)

这个方法用来把一组数据匹配到动画需要的数据上,最后对匹配完成的数据调用setValue方法。官方文档有详细的描述https://facebook.github.io/react-native/docs/animated.html#event。

有些两个注意的地方。第一个是处理Pan手势的时候,另一个是处理scroll的时候。

当处理PanResponder或者onScroll事件的时候,你需要些你自己的方法来匹配(map)数据。

PanResponder的例子:

 onPanResponderMove: Animated.event([
   null,                // raw event arg ignored
   {dx: this._pan.x, dy: this._pan.y},    // gestureState arg
 ]),

onPanResponderMove方法里,调用了Animated.event。参数是一个数组,里面有两个元素。我们忽略了第一个初始事件的值。第二个元素是gestureState,提供了很有用的值dxdy。这两个值就是用户从触碰屏幕开始手指移动的距离。

下面看看onScroll的时候,也许你想在背景色的上做动画等等。总之,在ScrollView或者ListView加入Animated.event是解决这个问题的第一步。

 onScroll={Animated.event(
   [{nativeEvent: {contentOffset: {x: this._scrollX}}}]
   {listener},          // Optional async listener
 )

另外,你可以把一个回调方法作为第二个参数传进去。

results matching ""

    No results matching ""