Android Fragment懶載入簡單實現

2021-07-23 23:32:25 字數 1175 閱讀 3185

有時候viewpager中的頁面比較多,如果馬上載入會很消耗資源,可以當使用者切換到某個fragment時再載入。

在fragment中有個

setuservisiblehint(

boolean isvisibletouser)方法

該方法用於告訴系統,這個fragment的ui是否是可見的。所以我們只需要繼承fragment並重寫該方法,即可實現在fragment可見時才進行資料載入操作,即fragment的懶載入。

使用時,寫乙個基類lazyfragment,繼承它即可,**如下:

public

abstract

class

basefragment

extends

fragment

else

}protected

void

oninvisible

() protected

void

onvisible()

protected

abstract

void

loaddata();

}

在lazyfragment中增加了三個方法,乙個是onvisible ,當fragment可見時呼叫。乙個是oninvisible,當fragment不可見時呼叫。另外乙個是loaddata。

public class

tabfragment

extends

lazyfragment

@override

protected void loaddata()

//填充各控制項的資料

} }

fragment生命週期中,setuservisblehint先於oncreateview執行。上面例項中,當tabfragment可見時,先進入loaddata方法,當判斷各控制項未初始化完畢,則進入oncreateview方法,當控制項初始化完畢後,會再次呼叫loaddata。在loaddata中判斷isprepared和isvisible,只要有乙個不為true就不往下執行。因此,只有初始化完成並且fragment可見情況下,才會載入資料,這樣就避免了未初始化帶來的問題。

Android fragment介面通訊

fragment 通過介面呼叫activity方法 在fagment中定義介面 public inte ce callbacks 在attach中將activity傳遞的物件例項化為介面 然後就跟普通的物件呼叫一樣 override public void onattach activity act...

Android Fragment完全解析

為了讓介面可以在平板上更好地展示,android在3.0版本引入了fragment 碎片 功能,它非常類似於activity,可以像activity一樣包含布局。fragment通常是巢狀在activity中使用的,現在想象這種場景 有兩個fragment,fragment 1包含了乙個listvi...

Android Fragment滑動切換

1,因為要進行滑動,所以中文在布局中就進行viewpager布局 android id id vp container android layout width match parent android layout height match parent android.support.v4.vi...