React native react native reanimated底部板材获取当前位置

React native react native reanimated底部板材获取当前位置,react-native,React Native,我使用的是底部床单行为。我的目标是获得床单的当前位置,无论它是全尺寸打开还是放在底部(如迷你播放器) 如果工作表按全尺寸打开,并按下硬件后退按钮,我想将工作表放在底部 如果将工作表放在底部,并按下硬件后退按钮,我想关闭应用程序 我试了一点,但没有成功 这是密码 先谢谢你 const App = () => { const drawerCallbackNode = new Animated.Value(0); const onCallback : any = async (

我使用的是底部床单行为。我的目标是获得床单的当前位置,无论它是全尺寸打开还是放在底部(如迷你播放器)

  • 如果工作表按全尺寸打开,并按下硬件后退按钮,我想将工作表放在底部

  • 如果将工作表放在底部,并按下硬件后退按钮,我想关闭应用程序

  • 我试了一点,但没有成功

    这是密码

    先谢谢你

    const App = () => {
    
     const drawerCallbackNode = new Animated.Value(0);
    
        const onCallback : any = async ([value]) => {
            console.log(value)
            await setopenRatio(prev => 1 - value)
            console.log('hii',openRatio)
        };
    
        useFocusEffect(
            React.useCallback(() => {
                const onBackPress = () => {
                    console.log(openRatio)
                   
                    if (sheet is full sized) {
                        console.log('back')
                        sheetRef.current.snapTo(2)
                        return true;
                    }
    
                  if (sheet is at bottom) {
                        console.log('back')
                        return false;
                    }
    
                };
    
                BackHandler.addEventListener('hardwareBackPress', onBackPress);
    
                return () =>
                    BackHandler.removeEventListener('hardwareBackPress', onBackPress);
            }, [show, selected])
        );
    
        const closeSheet = () => {
            setshow(false)
            sheetRef.current.snapTo(1)
        }
    
        const renderContent = () => (
            <View
                style={{
                    backgroundColor: 'white',
                    padding: 16,
                    height: 1000,
                }}
            >
                <Text>Swipe down to close</Text>
                <Text>item</Text>
                <Button title='close' onPress={closeSheet} />
    
            </View>
        );
    
    
        const sheetRef: any = React.useRef(null);
    
        
    return (
            <>
         
                <BottomSheet
                    ref={sheetRef}
                    snapPoints={[610, 0, 100]}
                    renderContent={renderContent}
                    initialSnap={1}
                    onCloseStart={() => console.log('start')}
                    callbackNode={drawerCallbackNode} 
                    
                />
    
                <Animated.Code
                    exec={onChange(
                        drawerCallbackNode,
                        call([drawerCallbackNode], onCallback))}
                />
    
       </>
        )
    }
    
    const-App=()=>{
    const drawerCallbackNode=新的动画.Value(0);
    const onCallback:any=async([value])=>{
    console.log(值)
    等待setopenRatio(prev=>1-值)
    console.log('hii',openRatio)
    };
    聚焦效应(
    React.useCallback(()=>{
    const onBackPress=()=>{
    console.log(openRatio)
    如果(板材为全尺寸){
    console.log('back')
    sheetRef.当前snapTo(2)
    返回true;
    }
    如果(板材位于底部){
    console.log('back')
    返回false;
    }
    };
    BackHandler.addEventListener('hardwareBackPress',onBackPress);
    return()=>
    removeEventListener('hardwareBackPress',onBackPress);
    },[显示,选定])
    );
    const closeSheet=()=>{
    设置显示(假)
    sheetRef.当前snapTo(1)
    }
    常量renderContent=()=>(
    向下滑动关闭
    项目
    );
    const sheetRef:any=React.useRef(null);
    返回(
    console.log('start')}
    callbackNode={DroperCallbackNode}
    />
    )
    }