日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2023/11/27 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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方法的学习的全部內容,希望文章能夠幫你解決所遇到的問題。

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