簡體   English   中英

重新創建包含Fragment時,ViewPager中的碎片未加載

[英]Fragments in ViewPager not loaded when the containing Fragment is recreated

我有一個Fragment MyFragment和一個包含更多FragmentViewPager 它在第一次加載MyFragment時正常工作,但是如果我返回並重新創建它,則不會顯示ViewPager中的Fragments ,因為未調用FragmentPagerAdapter.getItem方法。

我正在使用

怎么了?

import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
...

public class MyFragment extends Fragment {

    private ViewPager pager;
    private MyPagerAdapter adapter;

    private List<Fragment> fragmentList = new ArrayList<Fragment>();

    public MyFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                 Bundle savedInstanceState) {
        return inflater.inflate(R.layout.my_fragment_layout, container, false);
    }

    public void onViewCreated(View v, Bundle savedInstanceState) {
        super.onViewCreated(v, savedInstanceState);

        indicators = (PagerSlidingIndicator) v.findViewById(R.id.indicators);
        pager = (ViewPager) v.findViewById(R.id.pager);

        Fragment fragment1 = new Fragment1();
        fragmentList.add(fragment1);

        Fragment fragment2 = new Fragment2();
        fragmentList.add(fragment2);

        Fragment fragment3 = new Fragment3();
        fragmentList.add(fragment3);

        adapter = new IndicatorPagerAdapter(getFragmentManager());
        pager.setAdapter(adapter);
    }

    public class MyPagerAdapter extends FragmentPagerAdapter {

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

        @Override
        public int getCount() {
            return fragmentList.size();
        }

        @Override
        public Fragment getItem(int position) {
            return fragmentList.get(position);
        }
    }
}

如果您正在使用嵌套片段(“我有一個包含更多片段的ViewPager的片段MyFragment” getFragmentManager() ,則在設置FragmentPagerAdapter時需要使用getChildFragmentManager() ,而不是getFragmentManager()

暫無
暫無

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

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