反应原生动画:滚动减慢时屏幕抖动

2024-03-17

我在用Animated.View更改标题高度。

它在 ios 中运行良好,但在 android 中,当我缓慢滚动时,整个视图都在晃动。

1)首先我设置状态

 this.state = {
      scrollY:new Animated.Value(0)
   }

2) 内部render()我渲染我想要动画的视图的高度。

const HeaderHeight = this.state.scrollY.interpolate({
      inputRange: [0, 100],
      outputRange: [100, 0],
      extrapolate: 'clamp'
    })

3)我这样设置标题:

  <Animated.View style={{width:'100%', height:HeaderHeight, backgroundColor:'transparent', justifyContent:'flex-end'}}>
 ...
  </Animated.View>

4)滚动视图内部:

<ScrollView
          scrollEventThrottle={16}
          onScroll={Animated.event([{ nativeEvent: { contentOffset: { y: this.state.scrollY } } }])}
          >

正如你可以从 gif 文件中看到的,当我slowly scroll the view屏幕在晃动。这发生在安卓中。在ios上运行得很好。

知道如何解决这个问题吗?

任何评论或建议都会非常有帮助:)


您的 inputRange [0,100] 和 outputRange[100,0] 的比率为 1。

这意味着,对于您在 ScrollView 中移动的每个像素,您的 HeaderHeight 将减少 1,这听起来不错,但是您从 ScrollView 事件中获得的值不是整数,而是双精度值,并且基于这些微小的数字,它将尝试“宽高比”是你的输出范围,这在 Android 中非常敏感,因此会晃动。

将 inputRange 增加到 [0, 200],使其与 outputRange 的比率为 2。这将消除震动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反应原生动画:滚动减慢时屏幕抖动 的相关文章

  • React-Native:如何定义 JavaScript 类

    我正在使用本机反应 我需要定义一个类 class myClass email string name string constructor setUser fbid string token string boolean 我试图在它自己的文
  • 如何解决本机反应的权限被拒绝错误?

    UPDATE 在终端中我看到这个文件有 rw r r 我需要运行什么命令才能将其更改为正确的权限 我正在尝试跑步 react native run ios 我不断收到如下错误 return binding open pathModule m
  • 如何在 React Native 中渲染自定义 3D 对象

    我已经成功使用 Three js expo Three 和 expo gl 在 React Native 中配置了红色立方体的 3D 渲染 但我想让用户渲染他们自己可能拥有的自定义 3D 对象 obj 或 mtl 扩展名 但我不确定如何让他
  • 在按钮下方显示模式 -React Native

    我们可以在原生 android 中保留一个组件 如某些组件 id 的layout below 中所示 我们如何在 React Native 中做到这一点 假设我有一个模式或警报框 我希望它在单击时显示在特定按钮的正下方 我怎样才能做到这一点
  • 选择哪一个react-native-router-flux或react-router-native或react-navigation [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是反应本机的初学者 正在尝试实现重定向 并在验证登录后路由到另一个页面 等 我应该选择哪一个react native router flux或
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • 使用react-native测量音频的响度

    我正在创建一个应用程序 Android 来使用本机反应录制手机中的语音 一项要求是实时测量声音的响度并基于它制作动画 我尝试使用react native audio库 但问题是响度监控仅在IOS中支持 我检查了世博会音频库 但找不到方法 有
  • react-native-firebase 无法处理通知 click_action 导航到通知屏幕

    我正在使用这个react native firebase和react navigation进行导航 我可以成功地从服务器或控制台推送通知 无论它是在前台还是后台 但我发誓文档不太清楚如何打开通知并导航到通知它所属的屏幕 这些是我的 onMe
  • 如何从javascript数组中获取唯一用户名的最后记录

    我有一个对象数组 例如 id 8 username peter weight 80 date 2019 10 14 id 1 username harry weight 80 date 2019 01 01 id 2 username ha
  • React Native + Redux:最好和首选的导航是什么?

    我想将 Redux 用于 React Native 目前我没有设置数据管理 所以index ios js有以下内容 renderScene route navigator this navigator navigator return
  • 在 React 中存储数据

    我实际上是 React 新手 无法选择在这种情况下存储数据的最佳方式是什么 我有一个包含一些输入的表单 我需要在提交时对这些输入中的所有数据执行一些操作 所有输入都存储在一个组件中 所以 我只需要在提交时获取所有数据 现在我正在尝试选择存储
  • 单击通知时反应本机导航到特定屏幕

    我正在尝试在用户单击他们收到的通知时实现导航 我已成功收到通知expo notifications并接受来自 API 的数据 路由 但当用户单击通知时无法导航到另一个屏幕 使用通知 export default useNotificatio
  • React Native + Redux 基本身份验证

    我正在寻找一种为我的反应本机应用程序创建基本身份验证的方法 我找不到任何反应本机应用程序的好例子 要登录 应用程序将电子邮件 密码 clientSecret 发送到我的服务器 如果OK 服务器返回accessToken refreshTok
  • 使用 Fetch 发生超时错误 - React Native

    我有一个正在运行的用户登录功能 但是 我想在获取时加入超时错误 有没有办法设置一个 5 秒左右的计时器 这样在这个时间之后就会停止尝试获取 否则 一段时间后我就会出现红屏 提示网络错误 userLogin var value this re
  • 用笑话测试实现react-leaflet映射的react组件的问题

    当我尝试测试实现react leaflet库的react组件时 遇到以下问题 C digital booking ui node modules react leaflet lib index js 1 Object
  • 打包器无法启动

    我想我在某个时候升级了节点 现在当我尝试使用以下命令运行打包程序时npm start它抱怨 npm start react native start Looks like you installed react native globall
  • 将 React Native 应用程序嵌入到现有的 ios/android 应用程序中

    我需要知道是否可以在现有的 ios android 应用程序中 嵌入 一个 React Native 应用程序 而不共享 React Native 应用程序代码 我们目前有一个 React Native 应用程序 它使用一些插件依赖项 并被
  • 为什么当我保存更改时,Expo 没有刷新?

    当我进行更改并保存它们时 模拟器中的应用程序不会刷新 我认为模拟器没有连接到 Metro 服务器 我尝试通过运行清除缓存expo r c 但这没有做任何事情 您是否尝试启用快速刷新 我遇到了同样的问题 但在启用 快速刷新 后 自动刷新再次开
  • 如何在react-navigation v5中使用withNavigation?

    我有一个嵌套组件 我想使用withNavigation在react navigation v5的嵌套组件中 为什么你不创建自己的带导航 import React from react import useNavigation from re
  • VirtualizedList:您有一个很大的列表,更新速度很慢

    我使用 FlatList 来处理大量项目 我收到来自 Expo XDE 的以下警报 VirtualizedList 您有一个更新速度很慢的大列表 make 确保你的 renderItem 函数渲染遵循 React 的组件 性能最佳实践 例如

随机推荐

  • VS 2010无法打开源文件“字符串”

    突然之间 我的 VS 2010 项目中的 Intellisense 开始变得疯狂 一切都正确构建 但它无法再找到基本的 C 头文件 如字符串 映射等 它不再识别 std 命名空间 而且通常会变得混乱 代码仍然可以编译 但无论我做什么 我都无
  • 服务器宕机时移动 SVN 存储库

    我的 SVN 服务器死了 我有另一台可以用作 SVN 服务器的机器 还有几台带有原始存储库的工作副本的机器 是否有一种干净的方法可以仅从当前工作副本在新服务器上重新创建存储库 历史是可以被遗忘的 我尝试创建一个新的存储库 破解其 UUID
  • 如何将字符串与整数进行比较

    In SQL Server 2012 我有一组列定义为VARCHAR 这些值是指标的阈值 可以是数字或字符串值 例如 温度的阈值是数字0 and 100 而门的阈值是open and closed 我想测试一个值 ResponseValue
  • 如何使 new FormData() 在 IE 浏览器上工作

    我怎样才能让这个在 IE 上工作 这在 IE 上不起作用 IE 浏览器不支持 new FormData api 是否有其他 api 相当于 IE 中的 new FormData var fd new FormData fd append u
  • Google Apps Script V8 分配给 null 会取消调试

    将变量赋值为 null 会导致调试取消该行的执行 这是重现该问题的测试脚本 function myFunction var a Hallo Logger log a a var b null Logger log b b 调试时 此脚本执行
  • 如何将日期正确转换为 UTC 然后再转换回来?

    我正在努力将 DateTime 转换为 UTC 概念以及所有我无法正确理解的内容 当我得到一个日期时间字符串 比如 7 10 2013 时 我只是这样做 Convert ToDateTime 7 10 2013 ToUniversalTim
  • PyGObject 中的 TreeView 拖放:未调用拖拽数据删除?

    我正在研究如何在 PyGObject 的 TreeView 中进行拖放的示例 我有一些不明白的事情 为什么是drag data delete函数从未被调用 这是独立的示例 from gi repository import Gtk Gdk
  • Google 应用程序脚本在 Google 表单提交后触发两次

    我的脚本在 Google 表单和链接的表格中运行两次时遇到问题 我有一个表单提交触发器 如果我删除此触发器 则脚本根本不会在表单提交上运行 如果我重新添加触发器 它将触发两次 但工作表响应中只有一个表单提交 我想也许我点击了表单提交两次 但
  • 使用对数标度在 R 中实现随机游走 Metropolis Hastings

    Context 我几乎到处寻找 但找不到使用对数尺度的随机游走 Metropolis Hastings 算法的完整实现 通过对数尺度 我的意思是我们正在使用目标分布的对数 通常是后验 为了简单起见 我在这里有一个最小的工作示例R但我也会很高
  • 在选择器列表中使用 @at-root 和 &

    我有一个 CSS 我尝试将其迁移到 SASS 其中包含许多结构 例如 btn primary hover btn primary focus btn primary active btn primary active open dropdo
  • 如何在executeBatch()之前检查Prepared Statement是否有批次?

    我对Java中的Prepared Statement有疑问 因为我对此了解不多 我有一个必须使用PreparedStatement 的用例 但我在编写代码之前只是想 while if preparedStatement setString
  • 如何标记 Perl 源代码?

    我有一些合理的 未混淆的 Perl 源文件 我需要一个标记生成器 它将其分割为标记 并返回每个标记的标记类型 例如对于脚本 print Hello World n 它会返回这样的内容 关键字5字节 空白 1 字节 双引号字符串 17 字节
  • 集成测试中的 MVC 策略覆盖

    我正在为 MVC 应用程序添加集成测试 我们的许多端点都应用了策略 例如 namespace WorkProject Route A Route public class WorkController Controller HttpPost
  • 根据另一个 DataFrame 选择一个 DataFrame 的列

    我试图根据另一个 DataFrame 的列选择 DataFrame 的子集 数据框看起来像这样 a b c d 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15 a b 0 0 1 1 2 3 2
  • 在 Android 上同时与多个 BLE 设备进行稳健通信

    尽管没有记录 但使用 Android BLE api 的传统观点是 某些操作 例如读 写特性和描述符 应该一次完成一个 尽管某些设备比其他设备更宽松 但是 我不清楚此策略是否应仅适用于单个连接 还是适用于所有活动连接 我听说最好一次启动与一
  • Cython 和 Python 项目测试驱动开发和 .pyx 文件结构建议

    构建一个的最佳方式是什么python cython项目 以便我可以对驻留在其中的代码进行单元测试 pyx文件 是否可以就地对该代码进行单元测试 或者重构可以让我以另一种方式实现这一目标 我是新来的cython但有 Python TDD mo
  • EnableAutoConfiguration spring 注解如何工作?

    I am no fan of gross over abstractions And i think Spring has committed a major felony 但如果有人可以解释 自动 配置背后的算法 我这次愿意忽略它 看看s
  • 检查Python中每行的运行时间

    我已经编写了一个 Python 脚本 但运行它所花费的时间比我预期的要长得多 并且我在脚本中没有明显的候选行占用运行时间 我可以在代码中添加任何内容来检查运行每一行需要多长时间吗 非常感谢 您尝试过通过分析运行 python 吗 pytho
  • 无法在 M1 Macbook 上启动 Cloud Run 容器

    我还没有在我的 M1 Macbook 上安装 Rosetta 安装了 Docker 和所有 deps 这甚至工作了几次 但不确定是什么突然导致了这个错误 Starting to run the app using configuration
  • 反应原生动画:滚动减慢时屏幕抖动

    我在用Animated View更改标题高度 它在 ios 中运行良好 但在 android 中 当我缓慢滚动时 整个视图都在晃动 1 首先我设置状态 this state scrollY new Animated Value 0 2 内部