我用的viewpager动态添加了五个view放在list中,每个view对应一个布局文件,比如我现在在其中的一个布局中放了好几个Imageview,然后切换,就会出现很明显的卡断。图片数量少的时候比如只放一个imageview的时候就不会有卡顿!怎么解决?
分析卡顿的原因 :
1、 布局原因: 布局层次较多,繁琐,每次加载页面的时候,重新初始化布局,浪费时间。
2、 页面缓存机制原因: 不要没次都让ViewPager去初始化页面,可以保存当前页和前一页、后一页,这样切换的时候,有一个提前预期的过程。
3、 图片原因 : 问题中叙述,加载一张的时候卡顿问题减轻,可能是图片太大,大的图片会占用更多的内存,会出现卡顿问题。
so,对应的解决办法:
1、 简化布局,特别是去掉没有用的布局层,如Relativelayout等。
2、 通过PagerAdapter的setOffscreenPageLimit()方法可以设置保留几个页面,一般情况下设置为2.
3、 对图片进行压缩。
4、 建议使用fragment,在每个页面中。fragment有自己明确的生命周期,可以更好的控制,页面的显示。
5、 用Handler,延迟添加图片操作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。