问题描述
我想使用PanResponder创建滚动效果(在我的特定情况下无法使用Scrollview)。如果我衰减并尝试使onPanResponderRelease
上的动画平滑,则动画开始闪烁,因为在onPanResponderGrant
中设置的偏移未考虑当前正在运行的平滑动画。有些人可以解决这个问题?
const panResponder = React.useRef(
PanResponder.create({
onMoveShouldSetPanResponder: () => true,onPanResponderGrant: (evt,gestureState) => {
pan.setOffset({
x: pan.x._value,y: pan.y._value,});
},onPanResponderMove: (evt,gestureState) =>
Animated.event([null,{dx: pan.x,dy: pan.y}],{
useNativeDriver: false,}),onPanResponderRelease: (evt,{vx,vy}) => {
pan.flattenOffset();
let velocity;
if (vx >= 0) {
velocity = clamp(vx,5);
} else if (vx < 0) {
velocity = clamp(vx * -1,5) * -1;
}
Animated.decay(pan,{
velocity: {x: velocity,y: vy},deceleration: 0.99,useNativeDriver: false,}).start();
},).current;
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)