如何解决在主发行版之后,具有启动偏移量的React-native panResponder请看一下gif
我尝试在触摸视图时进行简单的放大,并在释放后将其平移到e缩小。但是我遇到了以下问题:在第一次平移尝试时一切正常,但是从第二次开始,选择视图时,在我开始平移之前它将移动到另一个位置。我的代码在下面。 Demonstration of the problem
export default class App extends Component {
pan = new Animated.ValueXY();
zoom = new Animated.Value(0);
panResponder = PanResponder.create({
onMoveShouldSetPanResponder: () => true,onStartShouldSetPanResponder: () => true,onPanResponderGrant: () => {
this.pan.setoffset({
x: this.pan.x._value,y: this.pan.y._value
});
},onPanResponderStart: () => {
Animated.spring(this.zoom,{
tovalue: 1,useNativeDriver: false,}).start()
},onPanResponderEnd: () => {
Animated.spring(this.zoom,{
tovalue: 0,onPanResponderMove: Animated.event([
null,{ dx: this.pan.x,dy: this.pan.y },],{ useNativeDriver: false,}),onPanResponderRelease: () => {
this.pan.flattenOffset();
}
});
render() {
const zooom = this.zoom.interpolate({
inputRange: [0,1],outputRange: [50,100],})
const raio = this.zoom.interpolate({
inputRange: [0,outputRange: [25,50],})
return (
<View style={styles.container}>
<Animated.View style={
[
styles.ball,{
height: zooom,width: zooom,borderRadius: raio,transform:
[
{
translateX: this.pan.x
},{ translateY: this.pan.y }
]
}
]} {...this.panResponder.panHandlers} />
</View>
)
}
}
const styles = StyleSheet.create({
container: {
flex: 1,alignItems: 'center',justifyContent: 'center'
},ball: {
backgroundColor: 'tomato',height: 50,width: 50,borderRadius: 25,}
})
任何帮助都可能很棒:D
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。