Привет! Я создаю компонент с плавающей кнопкой действия.Я хочу ограничить движение элемента, чтобы всегда оставаться внутри экрана.Если мы переместим кнопку горизонтально или вертикально, она в какой-то момент выйдет за пределы экрана.Не уверен, как справиться с этим.Пожалуйста, помогите исправить это.Здесь я приложил фрагмент:
export class ActionComponent extends Component {
constructor(props) {
super(props);
this.state = {
pan: new Animated.ValueXY(),
}
this.panResponder = PanResponder.create({
onStartShouldSetPanResponder: (evt, gestureState) => true,
onPanResponderMove : Animated.event([null,{
dx : this.state.pan.x,
dy : this.state.pan.y
}]),
onPanResponderRelease : (evt, gestureState) => {},
onMoveShouldSetPanResponder: (e, gestureState) => {
if (
Platform.OS == 'android'
&& (gestureState.dx < 2 && gestureState.dx > -2)
&& (gestureState.dy < 2 && gestureState.dy > -2)
) {
return false;
}
return true;
}
});
}
render() {
return (
<Animated.View
{...this.panResponder.panHandlers}
style={[this.state.pan.getLayout()]}>
<TouchableHighlight underlayColor='transparent' onPress={()=>this.props.testFunct()}>
<Image style={{width:60,height:60}}
source={require('../images/newImage.png')}
/>
</TouchableHighlight>
</Animated.View>
);
}
}