Я обновляюсь, чтобы отреагировать на собственную версию до 59.1, и ответчик панорамирования не работает на android с внутренним просмотром прокрутки, прокрутка идет немного и перестает прокручиваться, это мой панорамировщик, работает с версией 54.2 rn, и я не понимаю, почему нужно менять панорамированиене отвечает на новую версию. rn версия спасибо за ответ
onPanResponderMove: (evt, gestureState) => {
let touches = evt.nativeEvent.touches;
if (touches.length == 2) {
let touch1 = touches[0];
let touch2 = touches[1];
let distance = (touch1.pageX - touch2.pageX) * (touch1.pageX - touch2.pageX) + (touch1.pageY - touch2.pageY) * (touch1.pageY - touch2.pageY) // 2 parmak(nokta) arasındaki mesafenin karesi
distance = (Math.sqrt(distance) / 100).toFixed(2);
var difference = Math.abs((distance - this.lastDistanceBetweenTwoFingers).toFixed(3))
if (this.lastDistanceBetweenTwoFingers == undefined) {
this.lastDistanceBetweenTwoFingers = distance
} else {
if (!this.state.zooming && difference > 0.05) {
if (this.lastDistanceBetweenTwoFingers > distance) {
if (this.state.fontSize > 6) {
this.setState({
zooming: true,
zoomValue: distance,
fontSize: parseInt((this.state.fontSize - difference * 2).toFixed(0))
})
this.myScrollVertical.scrollTo({
x: 0,
y: 0,
animated: true
})
this.lastDistanceBetweenTwoFingers = distance
}
} else {
if (this.state.fontSize < 20) {
this.setState({
zooming: true,
zoomValue: distance,
fontSize: this.state.fontSize + difference * 2
})
this.myScroll.scrollTo({
x: 0,
y: 0,
animated: true
})
this.lastDistanceBetweenTwoFingers = distance
}
}
}
}
} else {
if (this.posFingerx == undefined) {
this.posFingerx = touches[0].pageX
this.posFingery = touches[0].pageY
} else {
let _valueX = this.posFingerx - touches[0].pageX
let _valueY = this.posFingery - touches[0].pageY
this.posFingerx = touches[0].pageX
this.posFingery = touches[0].pageY
var scrollValueX = this.scrollViewXpos + _valueX
var scrollValueY = this.scrollViewYpos + _valueY
if (scrollValueX >= 0 || scrollValueX <= 200) {
this.myScroll.scrollTo({
x: scrollValueX,
y: 0,
animated: true
})
this.scrollViewXpos = scrollValueX
}
if (scrollValueY >= -200 && scrollValueY <= 700) {
this.myScrollVertical.scrollTo({
x: 0,
y: scrollValueY,
animated: true
})
this.scrollViewYpos = scrollValueY
}
}
}
},
onPanResponderRelease: (e, {vx, vy}) => {
this.posFingerx = undefined
this.lastDistanceBetweenTwoFingers = undefined
this.state.pan.flattenOffset();
Animated.timing(
this.state.scale,
{
toValue: 1,
}
).start();
}
});
, и я использую scrollview вот так, а не прокручиваю все страницы, прокручиваю немного и остановился
<ScrollView
ref={(ref) => this.myScroll = ref}
style={styles.containerScrollView}
horizontal={true}
scrollEnabled = {false}
>
<ScrollView
ref={(ref) => this.myScrollVertical = ref}
style={styles.containerScrollView}
vertical={true}
scrollEnabled = {false}
contentContainerStyle={styles.contentScroll}
>
<Animated.View style={textContainerStyle}
{...this._panResponder.panHandlers}>
<Text style={{
fontFamily: _fontFamily,
fontWeight: 'bold',
fontSize: this.state.fontSize
}}>
{content}
</Text>
</Animated.View>
</ScrollView>
</ScrollView>