最终效果

在这里插入图片描述

实现原理

主动滚动区触发滚动事件,原生监听滚动值的变化,并用动画的方式实时同步到跟随滚动区

技术要点

  • 使用 Animated.ScrollView

  • 使用动画变量

    const scrollY = useRef(new Animated.Value(0)).current;
    
  • 主动滚动触发 onScroll,用 Animated.event 实现原生绑定

              onScroll={Animated.event([{nativeEvent: {contentOffset: { y: scrollY },},},],{ useNativeDriver: true })}
    
  • 跟随滚动

    transform: [{ translateY: Animated.multiply(-1, scrollY) }],
    

范例代码

import React, { useRef } from "react";
import { Animated, StyleSheet, View } from "react-native";
const colors = ["red", "green", "blue", "yellow", "orange"];
export default function Demo() {const scrollY = useRef(new Animated.Value(0)).current;const viewList = () => {const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,];return (<>{array.map((item, index) => (<Viewkey={item}style={{width: 60,height: 100,backgroundColor: colors[index % 5],}}/>))}</>);};return (<View style={styles.root}><View style={styles.leftLayout}><Animated.Viewstyle={{width: 60,transform: [{ translateY: Animated.multiply(-1, scrollY) }],}}>{viewList()}</Animated.View></View><View style={styles.rightLayout}><Animated.ScrollViewshowsVerticalScrollIndicator={false}onScroll={Animated.event([{nativeEvent: {contentOffset: { y: scrollY },},},],{ useNativeDriver: true })}>{viewList()}</Animated.ScrollView></View></View>);
}
const styles = StyleSheet.create({root: {width: "100%",height: "100%",flexDirection: "row",justifyContent: "center",},leftLayout: {width: 60,backgroundColor: "#00FF0030",flexDirection: "column",},rightLayout: {width: 60,height: "100%",backgroundColor: "#0000FF30",marginLeft: 100,},
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84783.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84783.shtml
英文地址,请注明出处:http://en.pswp.cn/web/84783.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何仅用AI开发完整的小程序<3>—创建小程序基础框架

1、启动小程序开发者工具-选择小程序&#xff0c;点击 2、创建一个项目工程 项目名称&#xff1a;自己填默认的也行&#xff0c;最好不要中文&#xff0c;拼音也行 目录&#xff1a;选择你的项目创建路径 AppID&#xff1a;可以先点测试号&#xff0c;后面再替换自己的AppID就…

SQL等价改写优化

or 与 union all的优化 在SQL开发中&#xff0c;我们经常会遇到这样的情况&#xff1a;需要组合多个相似但略有不同的查询结果。大多数开发者本能地使用UNION/UNION ALL来解决&#xff0c;这种方式直观易懂&#xff0c;但在特定场景下却隐藏着巨大的性能浪费。 本案例将从执行…

【已解决】 数据库INSERT操作时,Column count doesn’t match value count at row 1

【已解决】数据库INSERT操作时&#xff0c;ColumnColumn count doesn’t match value count at row 1 在开发过程中&#xff0c;我们经常会遇到数据库操作错误&#xff0c;其中之一就是 MySQL 中的 “Column count doesn’t match value count at row1” 错误。这个错误通常发…

管件接头的无序抓取

文章目录 1&#xff0c;目的2&#xff0c;过程3&#xff0c;易混易错点4&#xff0c;代码详解4.1&#xff0c;初始化窗口4.2&#xff0c;创建多视角立体视觉模型。4.3&#xff0c;创建表面匹配模型4.4&#xff0c;多视角立体视觉重建管件堆表面模型4.5&#xff0c;管道接头查找…

移远通信 × 紫光展锐,推动FWA “5G+AI”新体验

6月19日&#xff0c;在2025 MWC上海期间&#xff0c;移远通信宣布&#xff0c;携手紫光展锐&#xff0c;推出面向下一代CPE应用的“5GAI”融合解决方案。目前双方正联合多家CPE厂商开展方案深度调优&#xff0c;以加速5GAI CPE终端的产业化落地进程。 该方案以移远5G模组RG620…

深入理解Grad-CAM:用梯度可视化神经网络的“注意力“

深入理解Grad-CAM&#xff1a;用梯度可视化神经网络的"注意力" 引言 在深度学习的发展过程中&#xff0c;模型的可解释性一直是一个重要的研究方向。尽管现代神经网络在图像识别、自然语言处理等任务上取得了令人瞩目的成果&#xff0c;但它们往往被称为"黑盒…

离线环境jenkins构建前端部署镜像

gitlabjenkins 实现前端项目打包成 docker 镜像&#xff1b;gitlab部署就不赘述了&#xff1b;因部署的gitlab版本的webhooks有问题&#xff0c;无法进行配置,所以文章的构建是手动触发的。并且nodejs部署应该也能跟docker一样直接安装进jenkins的镜像(但是多版本可能就有其他问…

案例:塔能科技×某市智能照明——从传统亮化到智慧光生态的跨越

在城市发展的滚滚浪潮中&#xff0c;市政照明不仅是驱散黑夜的光明使者&#xff0c;更是衡量城市智能化水平的关键标尺。贵州某市的城市照明系统正经历一场意义深远的革新&#xff0c;塔能科技以创新科技为核心驱动力&#xff0c;为这座城市的夜间照明生态注入全新活力。通过智…

LeapMotion-HandPoseRecorder 脚本详解

HandPoseRecorder 脚本详解 这个脚本是一个用于在 Unity 中录制和保存 Leap Motion 手部姿势的工具。下面我将详细解释脚本的各个部分: 核心功能 该脚本的主要作用是: 从 Leap Motion 设备捕获当前手部姿势数据 将姿势数据序列化为可重用的 ScriptableObject 在 Unity 项目…

【Guava】0.做自己的编程语言

【Guava】0.做自己的编程语言 0.前言1.明确你的目标1.2.设计1.3.写一个介绍 2.开始吧&#xff01; 0.前言 DO WHAT THE F**K YOU WANT TO DO 我相信&#xff0c;网上有许多各式各样的做自己的编程语言教程&#xff0c;but 都是这样 收费 shit 本教程教你真正教你实现一个名叫G…

【软考高级系统架构论文】论无服务器架构及其应用

论文真题 近年来&#xff0c;随着信息技术的迅猛发展和 应用需求的快速更迭&#xff0c;传统的多层企业应用系统架构面临越来越多的挑战&#xff0c;已经难以适应这种变化。在这一背景下&#xff0c;无服务器架构(Serverless Architecture) 逐渐流行&#xff0c;它强调业务逻辑…

国产MCU A\B SWAP原理及实操

看到有读者留言说还是没理清A\B SWAP的原理。 今天就以某国产MCU为例&#xff0c;实际演示一番&#xff0c;看看大家在芯片设计时思路是什么。 我们首先回顾下SWAP的基本思想。 SWAP的基本思想是将PFLASH分成两组Bank&#xff0c;Bank A(假设是active)和Bank B(假设是inacti…

目标检测neck经典算法之FPN的源码实现

┌────────────────────────────────────────────────────┐│ 初始化构造 (__init__) │└─────────────────────────────────────────────…

extern关键字:C/C++跨文件编程利器

在 C 和 C 中&#xff0c;extern 是一个关键字&#xff0c;用于声明变量或函数是在其他文件中定义的。它主要用于实现多个源文件之间的符号共享。 目录 &#x1f4cc; 一、C语言中的 extern 1. 基本作用 2. 示例说明 定义全局变量&#xff08;只在一个 .c 文件中&#xff…

编程语言的演化与选择:技术浪潮中的理性决策

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 一、引言&#xff1a;为什么“选对语言”比“掌握语言”更重要&#xff1f; 在软件开发的世界里&#xff0c;语言是一切的基础。…

【StarRocks系列】StarRocks vs Mysql

目录 StarRocks 简介 核心特性 典型应用场景 StarRocks vs MySQL&#xff1a;核心区别详解 关键差异总结 如何选择&#xff1f; StarRocks 简介 StarRocks 是一款高性能、全场景、分布式、实时分析型的数据库&#xff08;MPP - 大规模并行处理&#xff09;。它诞生于解决…

Axios 知识点全面总结

文章目录 Axios 知识点全面总结一、Axios 基础概念1. 什么是 Axios&#xff1f;2. 核心特性 二、安装与基本用法1. 安装2. 基本请求示例 三、请求方法与参数四、请求配置选项&#xff08;config&#xff09;五、拦截器&#xff08;Interceptors&#xff09;六、错误处理七、取消…

【软考高级系统架构论文】论 SOA 在企业集成架构设计中的应用

论文真题 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service - Oriented Architecture, SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务功能暴露为服务,实…

springboot 提供的可扩展接口

一、spring 和 springboot Spring框架提供了全面的基础架构支持。包含依赖注入和开箱即用等模块&#xff0c;如&#xff1a;Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test Spring Boot 约定大于配置-----消除了设置Spring应用程序所需…

python学习打卡day55

DAY 55 序列预测任务介绍 知识点回顾 序列预测介绍 单步预测多步预测的2种方式 序列数据的处理&#xff1a;滑动窗口多输入多输出任务的思路经典机器学习在序列任务上的劣势&#xff1b;以随机森林为例 作业&#xff1a;手动构造类似的数据集&#xff08;如cosx数据&#xff09…