Android中用ViewPager和Fragment内嵌WebView
16lz
2021-01-24
WebView很好很强大,但是在Android中加载慢啊。
在同一个Activity中,用ViewPager可以加载多个Fragment,切换视图比较流畅,但是如果超出了3个Fragment,而且刚好Fragment中有WebView,体验就非常糟糕,页面要好几秒才能显示出来。
这是因为ViewPager缺省情况下,只把当前页的前一页和后一页放在缓冲区中。如果超出了3个Fragment,那么切换到第4个时,第一个会被销毁,第4个需要重建。内嵌的WebView就要重新被加载。
如果Frragment不是很多的话,那可以设置ViewPager.setOffscreenPageLimit,增加缓冲页面,避免WebView被重建。例如有4页,可以设置setOffscreenPageLimit(2),保持当前页的前两页和后两页。
巧的是,由于ViewPager可以预先加载和缓存fragment,避免了fragment中的WebView被无谓地刷新,体验反而更流畅了。如果WebView不在首页,那和原生开发的视图更没有太大区别。
在同一个Activity中,用ViewPager可以加载多个Fragment,切换视图比较流畅,但是如果超出了3个Fragment,而且刚好Fragment中有WebView,体验就非常糟糕,页面要好几秒才能显示出来。
这是因为ViewPager缺省情况下,只把当前页的前一页和后一页放在缓冲区中。如果超出了3个Fragment,那么切换到第4个时,第一个会被销毁,第4个需要重建。内嵌的WebView就要重新被加载。
如果Frragment不是很多的话,那可以设置ViewPager.setOffscreenPageLimit,增加缓冲页面,避免WebView被重建。例如有4页,可以设置setOffscreenPageLimit(2),保持当前页的前两页和后两页。
巧的是,由于ViewPager可以预先加载和缓存fragment,避免了fragment中的WebView被无谓地刷新,体验反而更流畅了。如果WebView不在首页,那和原生开发的视图更没有太大区别。
更多相关文章
- Android(安卓)异步加载——AsyncTask详谈
- android中使用gif
- Android开发:Android(安卓)studio 无法在可视化页面预览XML布局文
- Android如何调试程序(一)
- android ViewFlipper使用示例(注册引导页)
- Android业务组件化之URL Scheme使用
- iScroll框架解析——Android(安卓)设备页面内 div(容器,非页面)over
- android 图片轮播框架banner
- [Android菜鸟笔记]Android(安卓)Studio_2.3.3小白入门简单配置