在使用ViewPager與Fragment的時候,ViewPager會自動緩存1頁內的數據,以下圖:java
當咱們當前處在頁面2的時候,頁面1和頁面3的View實際上已經建立好了,因此在咱們拖動的時候是能夠看見他們的界面的。緩存
可是當咱們的頁面處在1的時候,頁面3實際上就已經銷燬了。直到跳轉到頁面2的時候,頁面3纔會建立View。網絡
這時,若是頁面3中有須要耗時的事件,好比網絡訪問。那麼,在咱們進行 1-->2 的操做的時候,就會不斷的出現頁面3加載的對話框(若是有的話)。並且若是快速的 1-->2-->3的切換,3中的內容極可能還沒加載出來。.net
這樣重複的加載,既影響體驗、又耗費時間和流量,因此筆者這兩天一直在查如何在Fragment移出的時候不要銷燬,或者保存狀態。code
後來發現真是畫蛇添足,若是您的軟件對內存消耗不是很在乎的話,只需加入如下代碼:blog
就可讓ViewPager多緩存一個頁面,這樣上面的問題就獲得瞭解決。事件
固然這只是個取巧的方法,若是有比較好的保存狀態的方法會更好。內存
轉載請註明來自:http://blog.csdn.net/icyfox_bupt/article/details/18356461get