ViewPager Fragment取消預載入功能

2021-07-11 08:23:57 字數 883 閱讀 4670

在大多數專案中,在用到viewpager的時候一般也會配合使用fragment,viewpager中的預載入功能也是非常的好用,在大多數情況下,預載入提高了使用者體驗,在切換的時候會非常的流暢,but!任何事都有but~

當每個fragment都需要去聯網載入網路資料或者做一些耗時的操作,而且有其他的fragment並不是必須的,使用者不一定會開啟。這樣的話如果還預載入的話將會浪費資源,使用者體驗也不好。雖然可以通過setoffscreenpagelimit(0)來設定viewpager不提前預載入,但這樣的設定沒有效果。

viewpager咱們弄不了,咱們弄fragment,首先,介紹fragment的兩個方法void setuservisiblehint(boolean isvisibletouser)、boolean getuservisiblehint(),它們分別用作設定/獲得fragment可見狀態,我們可以重寫fragment在其中做判斷,**如下:

public abstract class basefragment extends fragment  else 

}/**

* 可見

*/protected void onvisible()

/*** 不可見

*/protected void oninvisible()

/**

* 延遲載入

* 子類必須重寫此方法

*/protected abstract void lazyload();

}

這樣,在我們的fragment中,只需要繼承這個類,然後重寫其中的lazyload()方法,當fragment對使用者可見(即使用者切換到此fragment時)我們在lazyload()中載入所需資料,其他的還是照舊,ok,完事!~

ViewPager Fragment 預載入問題

viewpager 預設載入兩個fragment 左右各乙個 viewpager.setoffscreenpagelimit 1 其中引數可以設為0或者1,引數小於1時,會預設用1來作為引數,未設定之前,viewpager會預設載入兩個fragment,左右各1個。如果要讓fragment 只預載入...

Android ViewPager 取消預載入

android 新引入的fragment加入了viewpager這樣的乙個元件。至於該控制項的功能在這裡就不說了。這篇文章主要解決fragment viewpager預載入的問題。預設的viewpager是會預先載入下乙個fragment的控制項的,可以通過setoffscreenpagelimit...

Android ViewPager 取消預載入

android 新引入的fragment加入了viewpager這樣的乙個元件。至於該控制項的功能在這裡就不說了。這篇文章主要解決fragment viewpager預載入的問題。預設的viewpager是會預先載入下乙個fragment的控制項的,可以通過setoffscreenpagelimit...