方法一、public void setUserVisibleHint(boolean isVisibleToUser); //這裏會判斷當前Fragment是否以顯示測試
方法二、public void onResume(); //這裏開始顯示Fragment
spa
有時候須要在Fragment真正顯示出來的時候在加載數據,例如和ViewPager組合使用時,ViewPager會預先加載上下一個Fragment,此時上下Fragment的onResume()方法就會被調用,剛好這並不是指望發生的,全部setUserVisibleHint(boolean isVisibleToUser)會是個更好的選擇。事務
相信這兩個PagerAdapter的子類,你們都不陌生吧~~自從Fragment問世,使用ViewPager再結合上面任何一個實例的製做APP主頁的案例特別多~~~內存
那麼這兩個類有何區別呢?it
主要區別就在與對於fragment是否銷燬,下面細說:fragment
FragmentPagerAdapter:對於再也不須要的fragment,選擇調用detach方法,僅銷燬視圖,並不會銷燬fragment實例。方法
FragmentStatePagerAdapter:會銷燬再也不須要的fragment,噹噹前事務提交之後,會完全的將fragmeng從當前 Activity的FragmentManager中移除,state標明,銷燬時,會將其onSaveInstanceState(Bundle outState)中的bundle信息保存下來,當用戶切換回來,能夠經過該bundle恢復生成新的fragment,也就是說,你能夠在 onSaveInstanceState(Bundle outState)方法中保存一些數據,在onCreate中進行恢復建立。數據
如上所說,使用FragmentStatePagerAdapter固然更省內存,可是銷燬新建也是須要時間的。通常狀況下,若是你是製做主頁面, 就三、4個Tab,那麼能夠選擇使用FragmentPagerAdapter,若是你是用於ViewPager展現數量特別多的條目時,那麼建議使用 FragmentStatePagerAdapter。時間
篇幅緣由,具體的案例就不寫了,你們自行測試。vi