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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

android Viewpager取消预加载及Fragment方法的学习

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

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

更改過的V4 包下載地址: http://pan.baidu.com/s/1xtzEA ? 2.限制預加載,會出現滑動過程中卡頓現象。其實Fragment中防止預加載主要是防止數據的預加載,Fragment中的VIew預加載是有好處的,我們可以通過Fragment中的一個方法來達到預加載View 但是不加載數據,在Fragment顯示的時候才去加載數據。 直接上我項目中使用到的代碼: @Override public void setUserVisibleHint(boolean isVisibleToUser) { ? ??? ??? ??? ??? ??? ? //判斷Fragment中的ListView時候存在,判斷該Fragment時候已經正在前臺顯示 ?通過這兩個判斷,就可以知道什么時候去加載數據了 if (isVisibleToUser && isVisible() && mPullToRefreshGridView.getVisibility() != View.VISIBLE) { initData(); //加載數據的方法 } super.setUserVisibleHint(isVisibleToUser); } 這個方法會在切換到Fragment顯示的時候去調用。 為了保證一開始加載Fragment的時候該方法提前調用,導致的數據不會加載,我在代碼中做出了如下的判斷: @Override public void onActivityCreated(Bundle savedInstanceState) { if (getUserVisibleHint() && mPullToRefreshGridView.getVisibility() != View.VISIBLE) { initData(); } super.onActivityCreated(savedInstanceState); } 特別注意: 1.在剛開始加載Fragment的時候,setUserVisibleHint這個方法比onCreated方法執行的還要早。預加載的Fragment就不會執行這個方法。 2.在VIewPager 切換到某個Fragment的時候,還會調用該方法。 通過在這個方法中去加載數據,我發現可以一定程度的實現預加載問題,保證了預加載不會加載數據,只會加載Fragment中的VIew,這樣就可以保證了VIewPager滑動的流暢性,也保證了只有切換到一個Fragment的時候才去加載數據的目的。 我覺得這種方法比修改V4包中的預加載數量好的多啊。



來自為知筆記(Wiz)



轉載于:https://www.cnblogs.com/flyme2012/p/4175510.html

總結

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

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