android - ViewPager setCurrentItem 卡住 UI 线程

标签 android android-support-library

我正在使用来自 Android 支持 v13 的 ViewPager,我想使用 setCurrentItem(int) 滚动到特定项目,但是当我尝试滚动超过 2 个页面时,应用程序卡住,几秒钟后,系统显示一个 ANR 窗口。

我尝试使用 setOffscreenPageLimit(2) 增加离屏屏幕限制,这样当我尝试滚动 2 页时它不会卡住,但对 3 页也是如此。

我的问题是我的 fragment 非常耗费内存,所以我不希望有太多内存。我在支持库 v4 中使用了相同的代码,但我必须将其更新到 v13 才能使用 NotificationCompat.Builder.addAction(int, CharSequence, PendingIntent)

你们中有人知道问题出在哪里,解决方案是什么吗?

最佳答案

您的适配器是否处理大量元素? (非常大 > ~220 项)

ViewPager.populate(int)将从当前项目位置循环到 N ,这是适配器中的项目数 - 因此,如果您将其设置为较大的值(例如 Integer.MAX_VALUE),这将需要一些时间,但最终会完成。

如果是这种情况,请搜索与“无尽寻呼机”相关的问题,例如 Endless ViewPager android ,或者将项目的数量限制在对主线程来说合理的范围内。

关于android - ViewPager setCurrentItem 卡住 UI 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18740916/

相关文章:

android - 了解录音机 read() 缓冲区

android - IntelliJ - 缺少运行选项?

机器人:imeOptions。按钮不显示

Android - 从 startActivity 获取 Activity 对象

android - Gradle 重复输入错误

android - jar 不匹配!修复 android-support-v7-appcompat 中的依赖项

android - commitAllowingStateLoss() 和 commit() fragment

android - 如何使用 ffmpeg 到 android 在 android 中获取视频文件的帧

android - 警告 : Found both android-support-v4 and android-support-v13 in the dependency list

android - SwitchCompat 改变颜色