Viewpager+Fragment出現空白頁面的問題


寫了三個Fragment,一次點擊跳轉顯示正常,如果從第一個直接跳轉到第三個,第三個頁面會出現空白界面。

問題找到了:原來動態獲取數據頁面數據不顯示,頁面顯示空白,就是onCreateView每次都調用導致的,這樣fragment每次都會設置新的view,而調試發現,之前的view並沒有被回收……這就導致了,新的view覆蓋了之前設置的view,這也就說的通了。

結合網上看的資料,得到解決方法一共有以下3種:

     1  viewpager.setOffscreenPageLimit(num);num為你的tab數,

     2 在onCreateView里面,判斷Fragment是否已經添加了contentView(第一次加載時,可以將view保存下 來,再  次加載時,判斷保存下來的view是否為null),如果保存的view為null,返回新的view ,否則,先將 保存的view從父view中移除,然后將該view返回出去   

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO 自動生成的方法存根
        if (contentView != null) {
            ViewGroup parent = (ViewGroup) contentView.getParent();
            if (parent != null) {
                parent.removeView(contentView);
            }
            return contentView;
        }
        return contentView = inflater.inflate(R.layout.fragment,
                container, false);
    }

     3 重寫public void destroyItem(ViewGroup container, int position, Object object),去掉super.destroyItem(container, position, object);


免責聲明!

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



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