Fragment的懶加載

在項目中太示,如果使用了ViewPager + Tablayout + 多個fragment 的形式的時候诲宇,一般就需要進行懶加載設(shè)置了籽前。

主要原因:
1-ViewPager會默認初始化當前fragment前后的多個fragment隘冲,導致多次創(chuàng)建和請求數(shù)據(jù)
2-如果用戶只需要查看當前fragment的內(nèi)容,而不進行滑動的時候奢入,此時如果不設(shè)置懶加載,會導致多請求數(shù)據(jù)媳叨,造成流量的浪費腥光。

設(shè)置懶加載:

  1. 思路:設(shè)置2個標記,一個用于檢查View是否創(chuàng)建完成 一個用于判斷當前Fragment是否顯示
    當以上2個條件同時滿足的時候糊秆,進行數(shù)據(jù)請求并加載武福。
  2. 案例:
public abstract class BaseFragment extends Fragment {

   //Fragment的View加載完畢的標記
    private boolean isViewCreated;
    //Fragment對用戶可見的標記
    private boolean isUIVisible;
    
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        isViewCreated = true;
        lazyLoad();
    }

    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);

        //isVisibleToUser這個boolean值表示:該Fragment的UI 用戶是否可見
        if (isVisibleToUser) {
            isUIVisible = true;
            lazyLoad();
        } else {
            isUIVisible = false;
        }
    }
  
     private void lazyLoad() {
        //對上面2個條件判斷,是因為setUserVisibleHint會多次回調(diào),并且會在onCreateView執(zhí)行前回調(diào),必須確保onCreateView加載完畢且頁面可見,才加載數(shù)據(jù)
        if (isViewCreated && isUIVisible) {
            //自定義加載數(shù)據(jù)的方法
            onLazyLoadData();
            //數(shù)據(jù)加載完畢,恢復標記,防止重復加載
            isViewCreated = false;
            isUIVisible = false;
        }
    }

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市痘番,隨后出現(xiàn)的幾起案子捉片,更是在濱河造成了極大的恐慌,老刑警劉巖汞舱,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伍纫,死亡現(xiàn)場離奇詭異,居然都是意外死亡昂芜,警方通過查閱死者的電腦和手機翻斟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來说铃,“玉大人访惜,你說我怎么就攤上這事∧迳龋” “怎么了债热?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長幼苛。 經(jīng)常有香客問我窒篱,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任墙杯,我火速辦了婚禮配并,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘高镐。我一直安慰自己溉旋,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布嫉髓。 她就那樣靜靜地躺著观腊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪算行。 梳的紋絲不亂的頭發(fā)上梧油,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音州邢,去河邊找鬼儡陨。 笑死,一個胖子當著我的面吹牛量淌,可吹牛的內(nèi)容都是我干的迄委。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼类少,長吁一口氣:“原來是場噩夢啊……” “哼叙身!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硫狞,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤信轿,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后残吩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體财忽,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年泣侮,在試婚紗的時候發(fā)現(xiàn)自己被綠了即彪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡活尊,死狀恐怖隶校,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛹锰,我是刑警寧澤深胳,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站铜犬,受9級特大地震影響舞终,放射性物質(zhì)發(fā)生泄漏轻庆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一敛劝、第九天 我趴在偏房一處隱蔽的房頂上張望余爆。 院中可真熱鬧,春花似錦夸盟、人聲如沸蛾方。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽转捕。三九已至作岖,卻和暖如春唆垃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背痘儡。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工辕万, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沉删。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓渐尿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親矾瑰。 傳聞我的和親對象是個殘疾皇子砖茸,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容