一 起因
我們在做應用的過程中,一個應用的界面可能是多個Fragment切換而成的,但是如果在每次應用啓動的時候就去加載大量的網絡數據(假設你的每個Fragment都需要加載網絡數據,你也可以理解爲初始化大量資源)肯定是不好的,能不能有一種方法可以在我們看到我們的Fragment時再去加載對應的Fragment的數據呢?
當然是有的。
二 解決
Fragment雖然有onResume和onPause的,但是這兩個方法是Activity的方法,調用時機也是與Activity相同,和ViewPager搭配使用這個方法就很雞肋了,根本不是你想要的效果,這裏介紹一種方法。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相當於Fragment的onResume
} else {
//相當於Fragment的onPause
}
}
在你判斷
isVisibleToUser
這個參數爲true時,說明這個Fragment已經在你的眼前了,這時你再去加載你需要的數據就可以了。
是不是很簡單呢?