gpt4 book ai didi

Android ProgressBar 跳帧

转载 作者:行者123 更新时间:2023-11-30 03:25:20 27 4
gpt4 key购买 nike

我正在将 20 个项目 (WebView) 加载到一个 LinearLayout 中,当它们加载时,我会显示一个隐藏该 LinearLayout 的 ProgressBar,以便向用户提供我正在工作的反馈。

问题是进度轮卡住,我在 LogCat 中收到来自 Choreographer 的警告,说“跳过帧!应用程序可能在其主线程上做了太多工作。”

为了避免这个问题,我实际上尝试改变对所有 20 个项目使用 LinearLayout 和使用带有适配器的 ListView。我遇到了 WebView 回收问题,所以我消除了回收并实际使用了一个包含 20 个项目的数组,每次 ListView 需要加载一个项目时,如果它之前已经膨胀,它就会从该数组加载。

然后我遇到了无法滚动到指定项目的问题,因为 ListView 仅在必要时加载 WebView,因此它无法计算需要完成的滚动量,因为 WebView 的高度各不相同.

结论,我必须回到我的 LinearLayout 实现,向其添加所有 WebView。

这个问题有解决办法吗?如果没有,我正在考虑只显示“正在加载...”TextView 而不是动画 ProgressBar。

顺便说一句,在有人问之前,我正在使用 Nexus 4 来测试应用程序而不是模拟器,并且我没有在 UI 线程中进行数据库访问。

提前致谢。

最佳答案

WebView 是一个沉重而昂贵的对象,每次向窗口添加一个新的WebView 时,都必须对其进行初始化、测量和布局。这就是导致您跳帧的原因。您可以使用 traceview 或 systrace 检查您将时间花在哪里。

关于Android ProgressBar 跳帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319554/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com