仅当我移动手指时才允许Panresponder React native

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仅当我移动手指时才允许Panresponder React native相关的知识,希望对你有一定的参考价值。

我对原生动画的反应非常新。我想创建向上滑动面板,尽管为此目的有很多库,但是我不想将它们用于自学习。

我编写的代码:-

constructor(props)
        super(props);
        this.animatedHeight = new Animated.Value(100);

        this.panresponder = PanResponder.create(
            onMoveShouldSetPanResponder:()=>true,
            onPanResponderMove:(e,gesture)=>

                if( gesture.dy < 0 && gesture.vy < 0 )
                    this.animatedHeight.setValue(Math.abs(gesture.dy) + 100) // increasing the height. Original height + delta y
                else if(gesture.dy > 0 && gesture.vy > 0)
                     // code for decreasing the height
                
            
        )
    


render()
     return(
        <Animated.View  

            style=[styles.movableContainer,height:this.animatedHeight]
            ...this.panresponder.panHandlers
        ></Animated.View>
    )


const styles = StyleSheet.create(
    movableContainer:
        bottom: 0,
        width:'100%',
        backgroundColor:'red',
        position:'absolute',
        zIndex:9999
    
)

Output Result

释放后,只要我将手指放回屏幕上,面板就会收缩。我想在移动手指时缩小面板

答案

尝试在创建PanResponder时添加以下代码

    onPanResponderGrant: (evt, gestureState) => 
        this.animatedHeight.setOffset(this.animatedHeight._value);
    
    onPanResponderRelease: (e,  vx, vy ) => 
        this.animatedHeight.flattenOffset();
    

以上是关于仅当我移动手指时才允许Panresponder React native的主要内容,如果未能解决你的问题,请参考以下文章

修饰并移动图像返回初始位置后反应本机 Panresponder 问题

仅当我将包裹提交给 CRAN 时才会出错

仅当“模块”选项设置为“esnext”时才允许使用***“等待”表达式

仅当键盘覆盖输入字段时才向上移动视图

仅当玩家在 Y 轴上向上移动时才移动地面视差

仅当用户从 Stripe 成功购买时才允许他们进行有限访问