开发者社区> 问答> 正文

把ViewPager 切换时出现卡顿的问题

我用的viewpager动态添加了五个view放在list中,每个view对应一个布局文件,比如我现在在其中的一个布局中放了好几个Imageview,然后切换,就会出现很明显的卡断。图片数量少的时候比如只放一个imageview的时候就不会有卡顿!怎么解决?

展开
收起
爵霸 2016-06-12 13:41:24 3244 0
1 条回答
写回答
取消 提交回答
  • 分析卡顿的原因 :
    1、 布局原因: 布局层次较多,繁琐,每次加载页面的时候,重新初始化布局,浪费时间。
    2、 页面缓存机制原因: 不要没次都让ViewPager去初始化页面,可以保存当前页和前一页、后一页,这样切换的时候,有一个提前预期的过程。
    3、 图片原因 : 问题中叙述,加载一张的时候卡顿问题减轻,可能是图片太大,大的图片会占用更多的内存,会出现卡顿问题。

    so,对应的解决办法:
    1、 简化布局,特别是去掉没有用的布局层,如Relativelayout等。
    2、 通过PagerAdapter的setOffscreenPageLimit()方法可以设置保留几个页面,一般情况下设置为2.
    3、 对图片进行压缩。
    4、 建议使用fragment,在每个页面中。fragment有自己明确的生命周期,可以更好的控制,页面的显示。
    5、 用Handler,延迟添加图片操作。

    2019-07-17 19:33:48
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载