有時候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...