應用場景:使用viewpager和fragment來展示資料,要求滑動到fragment時載入此頁面的資料。
解決這個問題其實很簡單,fragment裡有setuservisiblehint這個方法,意思是當此fragment可見時執行此方法。所以我們的fragment可以這樣寫(為了方便起見,我們寫乙個basefragment,需要實現懶載入的繼承basefragment即可):
public abstract class basefragment extends fragment
public void setfirstvisible(boolean firstvisible)
@override
public void setuservisiblehint(boolean isvisibletouser)
} else
} /**
* 第一次可見狀態下載入資料的方法(且只會載入一次)
*/public abstract void firstvisibleinitdata();
}
**很簡單,相信大家一目了然。
firstvisible這個變數用來記住第一次可見的狀態,這個主要是因為setuservisiblehint方法每次fragment可見的時候都會執行,而我的需求是第一次執行載入操作。
注意:setuservisiblehint方法會在oncreateview之前呼叫,所以在firstvisibleinitdata裡不要執行ui操作,否則會報空指標錯誤,畢竟還沒初始化。。。
fragment懶載入功能的實現
建立乙個fragment的父類,也可以算是fragment的工具欄,用於實現懶載入 直接將 拷貝上去就可以 import android.os.bundle import android.support.annotation.nullable import android.text.textutil...
Fragment懶載入預載入
1.預載入viewpager.setoffscreenpagelimit 2 預設是預載入1,可以結合懶載入使用。如果希望進入viewpager,fragment只載入一次,再次滑動不需載入 只有退出activity 可以重寫viewpager adapter的getitem,去掉super 2.懶...
Fragment的懶載入
使用原因 做應用開發時,乙個activity裡面可能會以viewpager與多個fragment來組合使用,而如果每個fragment都需要去載入資料,或從本地,或從網路載入,那麼在這個activity剛建立的時候就變成需要初始化大量資源。應用懶載入後,就能做到當切換到這個fragment時,它採取...