使用ViewPager加载页面出现空白
原文鏈接:http://blog.csdn.net/zjf1165/article/details/51076642
首次啟動程序時首頁空白,切換頁面后正常
為了便于管理,通常為ViewPager的每個子頁面建立一個基類,然后用一個集合(一般用ArrayList)承載該ViewPager的所有子頁面,然而在該基類的構造方法中一般引用initView()方法,使得某個子類在new的時候就創建視圖,而在pageradapter中的
public Object instantiateItem(ViewGroup container, int position) { }方法中一般也會調用基類的initView()方法添加將要展示界面,錯誤出現:
即使在其他地方改變ViewPager中子頁面的顯示也無法將其展示出來,即出現空白現象
事例代碼(智慧北京項目):
此時的首頁界面如下:
明明調用initData()方法為該頁面添加數據可首頁依然空白
出現的原因:
兩次調用initView方法(基類和instantiateItem方法)引起的,即:
改正做法
在基類中添加getView( )方法,并讓每個子類實現。構造方法和以前一樣引用initView方法,不然給首頁初始化數據時會出現:為null的對象賦值的錯誤
在pageradapter的instantiateItem方法中調用getView方法
setCurrentItem 表示切換當前的ViewPager到指定界面,因為ViewPager有緩存和回收機制,也就是說,默認情況下ViewPager只會創建三個界面,因此跳過三個界面的時候,需要重新創建,所以導致空白,解決方案就是:
viewPager.setOffscreenPageLimit(4); 表示四個界面來回切換不會重新創建,就會不出現空白了。
總結
以上是生活随笔為你收集整理的使用ViewPager加载页面出现空白的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Fragment全解析系列
- 下一篇: ViewPager+Fragment懒加