最近弄一個仿網易新聞的,TAB切換的效果,使用的是Fragment嵌套Fragment,ViewPager控制內嵌Fragment的滑動。發現個問題:
滑動頁面,A頁面第一次顯示正常,之後再滑動到該頁,數據不顯示了,頁面顯示空白……經過調試發現,onCreateView每次都會被調用 ,瞭解下Fragment的生命週期即可知道:
問題總結:
onCreateView每次調用導致fragment每次都會設置新的view,並且之前的view沒有被回收……這就導致了,新的view覆蓋了之前設置的view
解決方法有幾種:
1、設置viewpager.setOffscreenPageLimit(tabs);tabs爲tab數
2、在onCreateView裏面判斷是否已經添加contentView,視情況做處理
3、重寫destroyItem,去掉super.destroyItem(container, position, object);