这很容易,但我不能让它工作:我需要 panresponder 从坐标开始(例如)x100 y25 而不是 0, 0(默认)
class MyPanResponder extends Component {
pan = new Animated.ValueXY();
panResponder = PanResponder.create({
onMoveShouldSetPanResponder: () => true,
onPanResponderGrant: (event, gestureState) => {
this.pan.setOffset({
x: this.pan.x._value,
y: this.pan.y._value
});
},
onPanResponderMove: Animated.event([
null,
{ dx: this.pan.x, dy: this.pan.y }
]),
onPanResponderRelease: () => {
this.pan.flattenOffset();
}
});
constructor(props) {
super(props);
this.state = {
currentPanValue: { x: 0, y: 0 },
};
}
render() {
return (
<View style={{ position: "absolute", width: "100%", height: "100%", alignItems: "center", justifyContent: "center" }}>
<Animated.View
style={{
transform: [{ translateX: this.pan.x }, { translateY: this.pan.y }]
}}
{...this.panResponder.panHandlers}
>
<Image
style={{ width: 150, height: 150, resizeMode: "cover" }}
source={{
uri: 'https://cataas.com/cat',
}}
/>
</Animated.View>
</View>
);
}
}
这段代码呈现了一个panresponder,我可以移动它,一切都很好,但初始位置,我无法改变