fragment懶載入功能的實現

2021-08-15 02:25:10 字數 1814 閱讀 3335

建立乙個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可以這樣寫 為了方便起見,我們寫...