簡體   English   中英

Android-ViewPager內的片段內的片段問題

[英]Android - Fragment inside a Fragment inside a ViewPager problems

在我的應用程序中,我有一個View分頁器,它可以旋轉4個片段。 這些片段中的一些內部還有其他片段。 Viewpager第一次啟動Fragment時,它工作正常,但是如果我旋轉並返回到上一個片段,則內部片段將無法顯示(並且我注意到其中的getActivity()返回null)。

例如,該應用程序啟動,我在viewpager中移動,看到所有主要片段,它們看起來都很好,然后我向后滾動,每個包含內部片段的主要片段均無法正確顯示。

我為ViewPager使用“ FragmentStatePagerAdapter”,代碼如下(例如,變量名稱)。

私有類ContentPagerAdapter擴展FragmentStatePagerAdapter {

    public ContentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Parcelable saveState() {
        return null;
    }

    @Override
    public Fragment getItem(int pos) {

        Fragment fragment = null;
        try {
            if (pos == POS1) {
                if (fragment1 == null) {
                    fragment1 = Fragment1.newInstance();
                }
                fragment = fragment1;
            } else if (pos == POS2) {
                if (fragment2 == null) {
                    fragment2 = Fragment2.newInstance(something);
                }
                fragment = fragment2;
            } else if (pos == POS3) {
                if ( fragment3 == null ) {
                    fragment3 = Fragment3.newInstance(something3);
                }
                fragment = fragment3;
            } else { //default
                if (fragment4 == null) {
                    fragment4 = Fragment4.newInstance(something4);
                }
                fragment = fragment4;
            }
        }catch (Exception e) {
            Log.e(AppConstants.APP_TAG, "Cannot create fragment", e);
            finish();
        }

        return fragment;
    }

    @Override
    public int getCount() {
        int count = 4;
        return count;
    }

    @Override
    public int getItemPosition(Object object) {
        return POSITION_NONE;
    }
}

實例化PagerAdapter ,請使用getChildFragmentManager()而不是getFragmentManager() 如果需要更多信息,類似的問題已在此處解決, TabFragment中的ViewPager不會第二次加載

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM