当前位置: 首页 > news >正文

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

使用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 (<><View style={styles.container}><Animated.Viewstyle={[panStyle, styles.animatedView]}{...panResponder.panHandlers}><Text>内容</Text></Animated.View></View></>);
};
const styles = StyleSheet.create({container: {flex: 1,},animatedView: {borderColor: 'red',borderWidth: 1,borderStyle: 'solid',flex: 1,},
});export default TestDragCard;
http://www.lryc.cn/news/312534.html

相关文章:

  • 【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题
  • 预约自习室
  • 网络安全审计是什么意思?与等保测评有什么区别?
  • HarmonyOS学习——HarmonyOS习题
  • Python程序怎么让鼠标键盘在后台进行点击,不干扰用户其他鼠标键盘操作
  • HTML静态网页成品作业(HTML+CSS)——新年春节介绍网页设计制作(3个页面)
  • vue实现base64格式转换为图片
  • 【杂言】迟到的 2024 展望
  • 结构体(C语言进阶)(一)
  • 【react】对React Router的理解?常用的Router 组件有哪些
  • 生成式 AI
  • 云计算 3月6号 (crontab-计划任务 日志轮转 免密登录)
  • Windows Shell命令详解:入门指南
  • MogDB/openGauss关于PL/SQL匿名块调用测试
  • STP---生成树协议
  • 算法D38| 动态规划1 | 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
  • Vue教学13:组件的生命周期:掌握组件的每一个关键时刻
  • mitmproxy代理
  • 【GPU驱动开发】- mesa编译与链接过程详细分析
  • 如何恢复已删除的华为手机图片?5 种方式分享
  • 通过 python 和 wget 批量下载文件(在Linux/Ubuntu/Debian中测试)
  • 个人博客系列-后端项目-RBAC角色管理(6)
  • 机器学习-启航
  • 驱动调试第014期-变频调速的原理及相关计算公式应用
  • JavaWeb环境配置 IDE2022版
  • Matlab偏微分方程拟合 | 完整源码 | 视频教程
  • 什么是yocto基本组件(bitbake,recipes,classes,configuration,layer)
  • electron 程序与安装包图标放大与制作
  • nginx,php-fpm
  • 网络编程(3/4)