1、本人理解懶加載和預加載問題某種情況下可以歸結為一類問題,下面我就說一下我遇到的預加載問題和懶加載問題及解決的相應方法:
?
?- [1 ] 預加載問題
??????? 描述:我用到了三個fragment、viewpage及tablayout實現點擊切換、滑動切換。
??????? 解決方法一(不成功,可以借鑒)、我百度網上給的方法說禁止viewpage預加載要改動v4包中viewpage類中一個全局變量(那個變量就不細說了,網上都有),我按照上面說的,復制android 4.0的v4包中的viewpage代碼,還需要修改一下才行,終于沒錯了,然后所有的viewpage都換成這個,問題出現了,tablelayout與viewpage關聯的時候出錯了,問題大致意思就是這個viewpage不是v4包中的viewpage,我看了一下tablelayout中的代碼,果真如此,里面關聯方法中的參數寫的死的,必須是v4包中的viewpage,到這我不是道以我的能力要這樣實現,估計要復制所有相關代碼,所以果斷放棄。
??????? 解決方法二、fragment類中有一個方法,當fragment可見或影藏的時候都會調用這個方法,調用順序在onCreateView方法之前。現在上代碼。
????????? @Override
??? public void setUserVisibleHint(boolean isVisibleToUser) {
??????? super.setUserVisibleHint(isVisibleToUser);
????????? isshow=isVisibleToUser;
??????? if(!firstshow){?????????? //判斷是否是第一次可見
??????????? if(isshow){?????????? //判斷是否可見
??????????????? showdialog();
??????????????? getdata();
??????????? }
??????? }
??????? }
??????? 當然這樣判斷并沒有解決我的問題,我在oncreateview中加了判斷,如果是第一次展示,那么要再onCreateview中加載數據,否則可以再setUserVisibleHint方法中加載。
???????? if(firstshow&&isshow){
??????????? showdialog();
??????????? getdata();
??????????? firstshow=false;
??????? }
所有的問題在這就結束了。如有什么問題可以留言,因為博客我有問題才會看,并且更新,特別急的問題可以發郵件:hello.zzh@qq.com
轉載于:https://www.cnblogs.com/moyu-z/p/10515419.html