小工具知识网

当前位置: 首页 > 行业知识 > 使用Animated.View实现全屏页面可以向下拖动,松开手指页面返回原处的效果

行业知识

使用Animated.View实现全屏页面可以向下拖动,松开手指页面返回原处的效果

2026-11-14 16:56:34 来源:互联网转载

使用Animated.View实现全屏页面可以向下拖动,松开手指页面返回原处的效果

    • 效果示例图
    • 代���示例

      效果示例图

      代码示例

      import React, {useRef, useState} from 'react';import {  View,  Text,  Animated,  Easing,  PanResponder,  StyleSheet,} from 'react-native';const TestDragCard = () => {  const pan = useRef(new Animated.ValueXY()).current;  const panResponder = PanResponder.create({    onMoveShouldSetPanResponder: () => true,    onPanResponderMove: (evt, gestureState) => {      console.log('{ds]', gestureState.dy);      Animated.event([null, {dy: pan.y}], {        useNativeDriver: false,      })(evt, gestureState);    },    onPanResponderRelease: (e, gestureState) => {      if (gestureState.dy > 50) {        Animated.timing(pan, {          toValue: {x: 0, y: 0},          easing: Easing.linear,          duration: 300,          useNativeDriver: true,        }).start(() => {          // 模拟加载数据的异步操作          console.log('[放开我]');        });      } else {        Animated.spring(pan, {          toValue: {x: 0, y: 0},          friction: 5,          useNativeDriver: true,        }).start();      }    },  });  const panStyle = {    transform: pan.getTranslateTransform(),  };  return (                            内容                    );};const styles = StyleSheet.create({  container: {    flex: 1,  },  animatedView: {    borderColor: 'red',    borderWidth: 1,    borderStyle: 'solid',    flex: 1,  },});export default TestDragCard;

上一篇:揭秘RSA背后的国家,探寻神秘起源之旅

下一篇:电脑主机的风扇怎么装上去