天天看點

ViewPager 裝載fragment 頁面顯示空白

ViewPager 裝載fragment 頁面顯示空白,這個時候有兩種情況:

① 在分頁面較多的情況下使用了FragmentPagerAdapter,可能會導緻第二次加載頁面顯示空白或是多次滑動頁面後頁面空白的情況,此時應該使用FragmentStatePagerAdapter。

因為我們所自定義寫的Adapter繼承自FragmentPagerAdapter, 在每次加載viewpager的時候都會調用viewpager裡面的OncreatView方法,是以會造成原有的已經加載好的view被新的頁面所覆寫,導緻在第二次打開viewpager的時候會顯示空白。 FragmentPagerAdapter該類内的每一個生成的 Fragment 都将儲存在記憶體之中,是以适用于那些相對靜态的頁,數量也比較少的那種; 選擇繼承自FragmentStatePagerAdapter才能解決問題。該 PagerAdapter 的實作将隻保留目前頁面,當頁面離開視線後,就會被消除,釋放其資源。

具體分析參考:http://blog.csdn.net/lyankj/article/details/53762032

② 在Fragment中嵌套ViewPager,然後ViewPager中呈現Fragment的時候, 頁面一直空白,可能的原因就是在初始化Adapter的時候使用了getFragmentManager,getFragmentManager到的是activity對所包含fragment的Manager,而如果是fragment嵌套fragment,那麼就需要利用getChildFragmentManager()了。即使用

new ViewPagerFragmentAdapter(getChildFragmentManager(), mFragments);
           

至此問題解決。

繼續閱讀