android - 为什么为回收站请求布局会停止布局操作?
问题描述
设想:
当我的 ViewPager 在一侧被点击时,下一个/上一个视频会动画到屏幕上。
示例:
视频 01 -> 视频 02(从右到左观看)
问题:
点击for跳转到下一个视频后,过渡卡在中间:
除了 ViewPager,UI 仍在响应。ViewPager 仅卡住了几秒钟。这个问题通常发生在第一次点击。
架构和逻辑
ConstraintLayout 其中包括:
-
ViewPager 顶部的 viewpager:
- 工具栏
- RecyclerView(蓝线和下方的文本)
当viewpager由于单击而滚动时,我使用以下功能:
onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int)
通过使用此数据,我正在更改回收站项目范围(layoutParams)
我发现了什么:
当不更改回收站 itemView layoutParams或
将回收站 itemView
设置为 MATCH_PARENT(仅用于测试,我必须使用 WARP_CONTENT)并更改 layoutParams 时,viewPager 工作正常。
我已经尝试在 80 毫秒内更新一次回收器项目(真的很慢)并且 UI 仍然冻结。所以我不明白:
-为什么会发生
-为什么在更新回收站项目时,viewpager 会卡住几秒钟-to 视图之间没有联系。
解决方案
推荐阅读
- python - 有没有更快的方法来减去沸点?
- python - 如何过滤具有大于指定连续整数计数的行
- variables - 如何延长函数内部局部变量的生命周期?
- javascript - 如何在 React 客户端和 AWS Websocket 之间包含标头?
- python - 当仅引用一个数组时,为两个不同的 numpy 数组分配相同的值
- django - 如何从 Django Channels 连接限制中恢复?
- hashicorp-vault - 保险柜包装令牌 - 使用次数
- statistics - 有没有办法将 Stata 中的数据从单个观察(例如经历事件的患者数量)转换为多个观察?
- javascript - 使用 JavaScript 中的自定义键将数组转换为对象
- javascript - Javascript Self-Defending是如何工作的,它是如何在美化时进入无限循环的?