fragment雖然有onresume和onpause的,但是這兩個方法是activity的方法,呼叫時機也是與activity相同,和viewpager搭配使用這個方法就很雞肋了,根本不是你想要的效果,這裡介紹一種方法。
//在fragment顯示出來呼叫的方法
public
void setuservisiblehint(boolean isvisibletouser) else }
例如:乙個viewpager中存在三個fragment頁面的時候,當預設是第乙個頁面可見,並載入資料進而顯示介面。那麼在後台就會收集到緊鄰的那個fragment的資訊資料了。
如何處理呢?其實很簡單,fragment下專門有乙個setuservisiblehint函式來處理這個事情:
view source
print?
01.
//實現該方法即可實現可見再載入。不可見不載入的效果!!!
02.
@override
03.
public
void
setuservisiblehint(
boolean
isvisibletouser)
else
10.
}
用法非常簡單,直接在fragment類中重寫上述方法即可。
當isvisibletouser=true的時候,執行相應的操作,例如:開闢執行緒和後台伺服器進行互動獲取資料,進行介面資料載入顯示等,或者進行資料統計,統計當前fragment開啟過幾次等等。
當isvisibletouser= false的時候,說明當前fragment不可見,大家可以根據需求執行響應的操作。
簡單原理:當前fragment可見的時候,即isvisibletouser=true的時候,開啟執行緒從伺服器獲取資料,獲取到之後儲存資料在本地快取檔案中,然後載入資料進行介面顯示。當fragment不可見的時候,資料不進行清理,以便於使用者切換回該fragment之後從快取檔案中直接載入資料即可。只有當使用者下拉重新整理的時候重新從伺服器獲取資料然後覆蓋以前儲存的快取檔案,然後載入資料進而顯示介面。
不難,我也不單獨給例項什麼的了。大家如果用到的時候不怎麼會用的話,歡迎和我交流交流,說不上一定幫上忙,但是我一定盡力,共同進步!!^_^【握手】
在重複一句,上面的方法超級簡單、實用!!!
fragment 切換判斷介面是否可見 使用場景
fragment大家經常應用到 宣告週期依賴於宿主activity 1 第一種用法 切換fragment 使用replace方法 private void showmyfragment fragment fragment else 3 setuservisiblehint 使用場景 當fragmen...
關於Fragment的顯示狀態
fragment的使用有兩種方式,一種是手動控制fragment的顯示和隱藏,例如 getfragmentmanager begintransaction hide mfragmentarray 1 show mfragmentarray 0 commitallowingstateloss 一種是v...
判斷UIView是否顯示在螢幕上
標頭檔案 inte ce uiview uiscreendisplaying 判斷view是否顯示在螢幕上 bool isdisplayedinscreen end實現檔案 implementation uiview uiscreendisplaying 判斷view是否顯示在螢幕上 bool is...