feat: 右滑

This commit is contained in:
jinyaqiu 2025-08-04 20:14:43 +08:00
parent fab73d196f
commit 6e8113e109

View File

@ -20,6 +20,8 @@ import {
TouchableOpacity,
View
} from 'react-native';
import { Gesture, GestureDetector } from "react-native-gesture-handler";
import { runOnJS } from 'react-native-reanimated';
import { useSafeAreaInsets } from "react-native-safe-area-context";
export default function AskScreen() {
@ -46,6 +48,25 @@ export default function AskScreen() {
}
}, []);
const updateState = (value: string) => {
console.log('Received in JS:', value);
// 更新 React 状态或路由
router.replace(value);
};
// 右滑
const gesture = Gesture.Pan()
.onEnd((event) => {
const { translationX } = event;
const threshold = 100; // 滑动阈值
if (translationX > threshold) {
// 从左向右滑动,跳转页面
runOnJS(router.replace)("memo-list");
}
})
.minPointers(1)
.activeOffsetX([-10, 10]); // 在 X 方向触发的范围
useEffect(() => {
if (!isHello && userMessages.length > 0) {
scrollToEnd();
@ -236,6 +257,7 @@ export default function AskScreen() {
);
return (
<GestureDetector gesture={gesture}>
<View style={[styles.container, { paddingTop: insets.top }]}>
{/* 导航栏 */}
<View style={[styles.navbar, isHello && styles.hiddenNavbar]}>
@ -316,6 +338,7 @@ export default function AskScreen() {
</View>
</KeyboardAvoidingView>
</View >
</GestureDetector>
);
}