Fragment中懶加載和實(shí)時(shí)刷新數(shù)據(jù)setUserVisibleHint和onHiddenChanged詳解

關(guān)于fragment的懶加載探析

這里涉及到的API有兩個(gè):

1. public void setUserVisibleHint(boolean isVisibleToUser)

百度搜索fragment的懶加載,往往能看到關(guān)于這個(gè)Api的介紹,大致瀏覽了幾篇文章,主要內(nèi)容有:

  • setUserVisibleHint(boolean isVisibleToUser)這個(gè)方法在onCreateView()方法執(zhí)行之前執(zhí)行的,在setUserVisibleHint(boolean isVisibleToUser)中可以提前進(jìn)行網(wǎng)絡(luò)請求也就是所謂的懶加載。。。
  • 需要注意的是這方法執(zhí)行的時(shí)候,不能保證布局文件初始化,所以該方法內(nèi)建議只能是純數(shù)據(jù)獲取操作。
  • setUserVisibleHint(boolean isVisibleToUser)這個(gè)方法貌似只有使用ViewPager加載Fragment的時(shí)候,才會調(diào)用這個(gè)方法;創(chuàng)建一個(gè)容器,動態(tài)加載fragment,進(jìn)行顯示隱藏,這種方式這個(gè)方法不執(zhí)行。(查看源碼可以知道,這個(gè)方法是在FragmentPagerAdapter中進(jìn)行調(diào)用參考 文章)
2. onHiddenChanged(hidden: Boolean)
  • 當(dāng)前mainActivity創(chuàng)建的時(shí)候,將所有Fragment都初始化創(chuàng)建對象,隱藏其他fragment,只顯示其中一個(gè)fragment的時(shí)候,被隱藏的fragment會執(zhí)行這個(gè)方法,且hidden=true,當(dāng)被隱藏的fragment進(jìn)行顯示的時(shí)候該方法也會執(zhí)行,hidden=false;
  • 根據(jù)上面所述,當(dāng)hidden==false的時(shí)候,進(jìn)行數(shù)據(jù)獲取可以做到每次顯示當(dāng)前fragment的時(shí)候,都會刷新數(shù)據(jù)。
    參考 setUserVisibleHint1
    參考 setUserVisibleHint2
    參考 onHiddenChanged
    參考 onHiddenChanged和setUserVisibleHint
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容