fragment+viewpager第二次載入頁面時顯示空白的原因!
在編寫一個底層有三個RadioButton,中間層是一個Linearlayout的app的的時候,在每個radiobutton對應的向Linearlayout中新增fragment,第二個有點特殊,不是直接的加入fragment而是加入了一個viewpager,並且在viewpager裡面添加了fragment進行切換.
於是問題來了 :在切換不同介面的時候 第一次讀取viewpager的時候可以顯示裡面的fragment並且可以自由的切換。當讀取另外一個radiobutton的時候再切換回來,viewpager裡面顯示的成為了空白,這個問題困擾了我大半天,頭也是夠疼的。找了各種部落格看了各種文章又看了看原始碼。最終搞懂了其中奧祕。
就在這裡給大家小小的解釋一下。
首先,我們所寫的Viewpager的adatper 有可能繼承自三個類 一個是PagerAdapter,另一個是FragmentPagerAdapter,最後一個是FragmentStatePagerAdapter。
後兩個都是PagerAdapter的子類,當然相比父類,我們優化了很多新的功能並且簡化了很多程式碼。
說了這麼多,主要原因還是因為對Frgament的生命週期不是很理解。
轉轉好的文章http://blog.csdn.net/forever_crying/article/details/8238863/
在每次載入viewpager的時候都會呼叫viewpager裡面的OncreatView方法 所以會造成原有的已經載入好的view被新的頁面所覆蓋,導致在第二次開啟viewpager的時候會顯示空白。