建立乙個fragment的父類,也可以算是fragment的工具欄,用於實現懶載入(直接將**拷貝上去就可以)
import android.os.bundle;
import android.support.annotation.nullable;
import android.text.textutils;
import android.view.layoutinflater;
import android.view.view;
import android.view.viewgroup;
import android.widget.toast;
/** * created by hsq on 2018/1/26.
*/public
abstract
class
lazyloadfragment
extends
fragment
/*** 檢視是否已經對使用者可見,系統的方法
*/@override
public
void
setuservisiblehint(boolean isvisibletouser)
/*** 是否可以載入資料
* 可以載入資料的條件:
* 1.檢視已經初始化
* 2.檢視對使用者可見
*/private
void
iscanloaddata()
if (getuservisiblehint()) else }}
/*** 檢視銷毀的時候講fragment是否初始化的狀態變為false
*/@override
public
void
ondestroyview()
protected
void
showtoast(string message)
}/**
* 設定fragment要顯示的布局
**@return 布局的layoutid
*/protected
abstract
intsetcontentview();
/*** 獲取設定的布局
**@return
*/protected view getcontentview()
/*** 找出對應的控制項
**@param id
*@param
*@return
*/protected
t findviewbyid(int id)
/*** 當檢視初始化並且對使用者可見的時候去真正的載入資料
*/protected
abstract
void
lazyload();
/*** 當檢視已經對使用者不可見並且載入過資料,如果需要在切換到其他頁面時停止載入資料,可以覆寫此方法
*/protected
void
stopload()
}
所有fragment都繼承這個懶載入的工具欄就可以實現懶載入
public
class
attention_fragment
extends
lazyloadfragment
@override
protected
void
lazyload()
@override
protected
void
stopload()
}
Fragment的懶載入
使用原因 做應用開發時,乙個activity裡面可能會以viewpager與多個fragment來組合使用,而如果每個fragment都需要去載入資料,或從本地,或從網路載入,那麼在這個activity剛建立的時候就變成需要初始化大量資源。應用懶載入後,就能做到當切換到這個fragment時,它採取...
Fragment懶載入預載入
1.預載入viewpager.setoffscreenpagelimit 2 預設是預載入1,可以結合懶載入使用。如果希望進入viewpager,fragment只載入一次,再次滑動不需載入 只有退出activity 可以重寫viewpager adapter的getitem,去掉super 2.懶...
Fragment實現懶載入
應用場景 使用viewpager和fragment來展示資料,要求滑動到fragment時載入此頁面的資料。解決這個問題其實很簡單,fragment裡有setuservisiblehint這個方法,意思是當此fragment可見時執行此方法。所以我們的fragment可以這樣寫 為了方便起見,我們寫...