安卓中布局載入的四種狀態UILoader

2021-10-05 07:18:57 字數 2688 閱讀 6409

private

static handler shandler = null;

@override

public

void

oncreate()

public

static handler gethandler()

乙個uiloader封裝類

public

abstract

class

uiloader

extends

framelayout

public uistatus mcurrentstatus = uistatus.none;

//保證了只有唯一的入口

public

uiloader

(@nonnull context context)

public

uiloader

(@nonnull context context,

@nullable attributeset attrs)

public

uiloader

(@nonnull context context,

@nullable attributeset attrs,

int defstyleattr)

//初始化ui

private

void

init()

public

void

updatestatus

(uistatus uistatus)})

;}private

void

switchuibycurrentstatus()

//設定是否可見

loadin**iew.

setvisibility

(mcurrentstatus == uistatus.loading ? visible : gone)

;//成功

if(successview == null)

successview.

setvisibility

(mcurrentstatus == uistatus.success ? visible : gone)

;//網路錯誤

if(neterrorview == null)

neterrorview.

setvisibility

(mcurrentstatus == uistatus.network_error ? visible : gone)

;//空頁面

if(emptyview == null)

emptyview.

setvisibility

(mcurrentstatus == uistatus.empty ? visible : gone);}

protected view getemptyview()

protected view getnetworkerrorview()

}});

return view;

}protected

abstract view getsuccessview

(viewgroup container)

;private view getloadin**iew()

public

void

setonretryclicklistener

(onretryclicklistener listener)

public

inte***ce

onretryclicklistener

}

這裡面的有三個介面是寫死的,所以自己寫出介面到時候就會顯示出來

其中的正在載入中的介面

舉栗說明,乙個詳情介面,成功時顯示recyclerview

private

void

inituiloader()};}

if(muiloader.

getparent()

!= null)

mframelayout.

addview

(muiloader)

; muiloader.

setonretryclicklistener

(this);

}

private view createsuccessview

(viewgroup container)})

;return view;

}

在網路錯誤對應的地方加上

muiloader.

updatestatus

(uiloader.uistatus.network_error)

;

在資料載入完成之前加上

if

(uiloader != null)

在資料載入成功地方加上

if

(muiloader != null)

@override

public

void

onretryclick()

任務棧 安卓四種啟動模式

這是 activity 的預設啟動模式,每次啟用 activity 的時候都會建立乙個新的 activity 例項,並放入任務棧中。使用場景 基本絕大多數地方都可以用。singleinstance 在乙個新棧中建立該 activity 的例項,並讓多個應用共享該棧中的該 activity 例項。一旦...

安卓四種啟動模式使用場景

1 singletop適合接收通知啟動的內容顯示頁面。例如,某個新聞客戶端的新聞內容頁面,如果收到10個新聞推送,每次都開啟乙個新聞內容頁面是很煩人的。從外界可能多次跳轉到乙個介面 2 singletask適合作為程式入口點。例如瀏覽器的主介面。不管從多少個應用啟動瀏覽器,只會啟動主介面一次,其餘情...

安卓學習筆記 Activity的四種啟動模式

standard,singletop,singletask,singleinstance 在 androidmanifest.xml 中給 activity 標籤指定 android lunchmode 屬性 activity的預設啟動模式 每啟動乙個activity就會在棧頂建立乙個新的例項。缺點...