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}
/>
)
}