我想要实现React Native的拖放功能,以便在拖放时交换组件。假设屏幕上有五个组件,一旦我开始拖动,它应该突出显示可放置的元素。一旦被放置,组件就应该互换位置。
我想要实现React Native的拖放功能,以便在拖放时交换组件。假设屏幕上有五个组件,一旦我开始拖动,它应该突出显示可放置的元素。一旦被放置,组件就应该互换位置。
state = {
pan: new Animated.ValueXY(),
};
那么你需要在componentWillMount
中创建Pan响应器,例如:
this.panResponder = PanResponder.create({
onStartShouldSetPanResponder : () => true,
onPanResponderMove : Animated.event([null,{ // <--- When moving
dx : this.state.pan.x,
dy : this.state.pan.y
}]),
onPanResponderRelease : (e, gesture) => {} // <--- callback when dropped
});
<Animated.View
{...this.panResponder.panHandlers}
style={[this.state.pan.getLayout(), styles.circle]}>
<Text style={styles.text}>Drag me!</Text>
</Animated.View>
this.state.pan.getLayout()
返回顶部和左侧位置,您需要这个来移动元素。onPanResponderRelease
。