ViewPager嵌套GridView引起的一系列UI卡顿不畅的问题

    因为项目要求,须要作一个日历的页面,作法采用ViewPgaer+GridView来作,初步过程很顺利,成型之后,出现UI现象有(1)Acitivity加载时间过长 (2)滑动Viewpager出现卡顿现象; post

    这两个问题看起来很简单,实际上要适配大部分机型使之流畅也要费不少功夫,各类测试和调试都是必须的; 测试

     通过各类测试,得出以下结果: ui

     (1)问题一的缘由有两个: 调试

            缘由一:致使activity加载过长的缘由是在onCreate初始化的ViewPager,因为日历是采用动态加载的形式,即索引定为60的时候默认会加载59和61,加上加载完数据之后须要渲染gridview消耗了必定的时间,在各类机型上面体验都不够流畅; 索引

            缘由二:activity其他还有几十个ui控件的初始化也形成activity初始化时间过长; ci

            解决方法:在Viewpager的adapter里面针对第一次加载的时候使用new Handler().post或者AsynTask进行延迟加载;activity中过多的ui控件请使用new Handler().post进行初始化,在加载过程当中先如今加载UI状态; it

 

      (2)问题二的缘由也有两个: 渲染

           缘由一:滑动的时候须要预加载另外两份数据致使UI卡顿; grid

           缘由二:在onPageSelected里面作耗时操做,经测试可知onPageSelected是执行刷新UI以前的,因此形成滑动会卡的现象; 方法

           解决方法同上,在onPageSelected里面使用new Handler().post或者AsynTask进行延迟初始化;

相关文章
相关标签/搜索