Я работаю с PanResponder в React Native и рассматриваю сценарий, в котором я щелкаю Animated.View
и перетаскиваю его. У меня есть следующий код:
this.panResponder = PanResponder.create({
onStartShouldSetPanResponder: () => true,
onMoveShouldSetPanResponder: () => true,
onPanResponderGrant: () => {
this.animatedValue.setOffset({
x: this._value.x,
y: this._value.y,
})
this.animatedValue.setValue({ x: 0, y: 0})
},
onPanResponderMove: Animated.event([
null,
{
dx: this.animatedValue.x,
dy: this.animatedValue.y
}
])
})
Мои вопросы:
1) Если я нажму Animated.View
, к которому прикреплен PanResponder, я знаю, что onStartShouldSetPanResponder: () => true
заставляет Animated.View
стать ответчиком на этот жест, но onMoveShouldSetPanResponder: () => true
вызывает его повторное превращение ответчик на каждый последующий шаг жеста перетаскивания?
2) onPanResponderGrant()
вызывается только при первом нажатии Animated.View
, или он также вызывается при каждом последующем увеличении жеста перетаскивания?
3) В onPanResponderMove
являются dx
и dy
суммарными накопленными расстояниями от начала касания или они представляют собой небольшие приращения, соответствующие индивидуальному приращению текущего жеста перетаскивания? то есть. Если бы я перетащил Animated.View
в общей сложности 100px
в направлении x
, то dx
был бы 100px
или это было бы что-то вроде 1px
для текущего приращения жеста перетаскивания?
Если бы вы могли дать мне некоторое представление о ЛЮБОМ из них, это было бы здорово.
Спасибо!