日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 移除fragment,Android Viewpager+Fragment取消预加载及Fragment方法的学习

發布時間:2024/9/27 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 移除fragment,Android Viewpager+Fragment取消预加载及Fragment方法的学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.在使用ViewPager嵌套Fragment的時候,由于VIewPager的幾個Adapter的設置來說,都會有一定的預加載。通過設置setOffscreenPageLimit(int number) 來設置預加載的熟練,在V4包中,默認的預加載是1,即使你設置為0,也是不起作用的,設置的只能是大于1才會有效果的。我們需要通過更改V4包中的默認屬性才可以。

更改過的V4 包下載地址,應該也可以,我沒試過。

2.限制預加載,會出現滑動過程中卡頓現象。其實Fragment中防止預加載主要是防止數據的預加載,Fragment中的VIew預加載是有好處的,我們可以通過Fragment中的一個方法來達到預加載View 但是不加載數據,在Fragment顯示的時候才去加載數據。

直接上我項目中使用到的代碼:

private?boolean?isVisable?=?false;

@Override

public?void?setUserVisibleHint(boolean?isVisibleToUser)?{

//判斷Fragment中的ListView時候存在,判斷該Fragment時候已經正在前臺顯示??通過這兩個判斷,就可以知道什么時候去加載數據了

if?(getUserVisibleHint()?&&?isVisible())?{

isVisable?=?true;

}else{

isVIsable?=?false;

}

super.setUserVisibleHint(isVisibleToUser);

}

這個方法會在切換到Fragment顯示的時候去調用。

為了保證一開始加載Fragment的時候該方法提前調用,導致的數據不會加載,我在代碼中做出了如下的判斷:

@Override

public?void?onActivityCreated(Bundle?savedInstanceState)?{

if?(isVisable)?{

loadData();

}

super.onActivityCreated(savedInstanceState);

}

特別注意:

1.在剛開始加載Fragment的時候,setUserVisibleHint這個方法比onCreated方法執行的還要早。預加載的Fragment就不會執行這個方法。

2.在VIewPager 切換到某個Fragment的時候,還會調用該方法。

通過在這個方法中去加載數據,我發現可以一定程度的實現預加載問題,保證了預加載不會加載數據,只會加載Fragment中的VIew,這樣就可以保證了VIewPager滑動的流暢性,也保證了只有切換到一個Fragment的時候才去加載數據的目的。

我覺得這種方法比修改V4包中的預加載數量好的多啊。

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的android 移除fragment,Android Viewpager+Fragment取消预加载及Fragment方法的学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。