防止ViewPager中的Fragment被銷毀的方法,更加流暢


在使用ViewPager與Fragment的時候,ViewPager會自動緩存1頁內的數據,如下圖:

當我們當前處在頁面2的時候,頁面1和頁面3的View實際上已經創建好了,所以在我們拖動的時候是可以看見他們的界面的。

但是當我們的頁面處在1的時候,頁面3實際上就已經銷毀了。直到跳轉到頁面2的時候,頁面3才會創建View。

 

這時,如果頁面3中有需要耗時的事件,比如網絡訪問。那么,在我們進行 1-->2 的操作的時候,就會不斷的出現頁面3加載的對話框(如果有的話)。而且如果快速的 1-->2-->3的切換,3中的內容很可能還沒加載出來。

這樣重復的加載,既影響體驗、又耗費時間和流量,所以筆者這兩天一直在查如何在Fragment移出的時候不要銷毀,或者保存狀態。

后來發現真是多此一舉,如果您的軟件對內存消耗不是很在意的話,只需加入以下代碼:

 

[java]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. pager.setOffscreenPageLimit(2);  

就可以讓ViewPager多緩存一個頁面,這樣上面的問題就得到了解決。

 

 

當然這只是個取巧的方法,如果有比較好的保存狀態的方法會更好。

 

轉載請注明來自:http://blog.csdn.net/icyfox_bupt/article/details/18356461


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM