画面抖动问题求助(涵盖scrollView、缓动系统 和 动画系统)

  • Creator 版本: 3.5.1、2.2.0、2.2.3 都有测试过

  • 目标平台: web-mobile 然后在安卓上通过 webview 拉起

背景

需求要用到 scorllView。测试时发现滑动的时候,如果打开惯性,那么当手指离开屏幕后页面做惯性移动时,scrollView 的内容会抖动,如果是手指按住的滑动就不会抖动。

其他测试

  1. 当把 break 调成 0,让页面做匀速的惯性移动时,依然会抖动。但是用手指匀速(尽量匀速)滑动页面就不会抖。

  2. 新建了一个只有 scrollView 的工程专门测试这个,也抖。

  3. 以为是 scrollView 的问题,想用动画系统和 setPosition 自己实现一个,发现制作的节点平移动画,也抖。

  4. 然后又尝试了缓动系统,还是抖。

不抖的场景

  1. 跟机型有关,同样的工程下:
    a. 华为 P40 ,android 9 的手机抖
    b. 华为 mate 40, 鸿蒙 2.0 不抖

  2. 另外发现跟手指按不按住屏幕有关。以 scrollView 举例,如果用左手按住屏幕的任何一个位置,右手去滑动 scrollView 让它做惯性移动,就不会抖。缓动和动画系统也是,只要用手指按住屏幕的某个位置,动画就不会抖,手指放开就会接着抖。

其他发现

抖的手机后台一直报以下信息(大概每帧都会报):

BufferQueueLayer: [“工程名、框架名等....”]: isDue = 0, !isPlausible = 0, Timestamp = 44542795123123, expectedPresent = 44542793280793

没法定位到是哪里报的,应该不是我们工程的东西。
不抖的手机也会报,不过零零散散一两次,抖的手机报的频率要高非常多。
另外,如果手指按住屏幕,就不会报这个信息,手指离开后就立马继续高速报这个。