Android View寻呼机适配器显示空屏幕

use*_*702 11 android android-fragments android-pageradapter

我正在实现一个Pager Adapter Fragment.当我第一次加载屏幕时,它工作正常.如果我切换到其他片段并再次转到上一个片段,它会显示空屏幕.如果我在不同的点击之间滑动并再次移动到第一个标签,则会显示数据.

我认为在向后移动可见的标签时没有加载数据,但是一旦它们在滑动导航期间不在视图中,它就会加载数据.

这是我的寻呼机适配器:

public class MyPagerAdapter extends FragmentPagerAdapter {

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

    @Override
    public Fragment getItem(int index) {
        switch (index) {
        case 0:
            return new Fragment1();
        case 1:
            return new Fragment2();
        case 2:
            return new Fragment3();
        case 3:
            return new Fragment4();
        case 4:
            return new Fragment5();
        case 5:
            return new Fragment6();
        }

        return null;
    }

    @Override
    public int getCount() {
        return 6;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在设置我的适配器:

viewPager = (ViewPager) rootView.findViewById(R.id.my_pager);
        mAdapter = new MyPagerAdapter(getActivity().getSupportFragmentManager());
        viewPager.setAdapter(mAdapter);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        
Run Code Online (Sandbox Code Playgroud)

Man*_*ish 38

只需检查您是否使用getFragmentManager()初始化适配器,尝试使用getChildFragmentManager()如下:

   mAdapter = new MyPagerAdapter(getChildFragmentManager());
        viewPager.setAdapter(mAdapter);
Run Code Online (Sandbox Code Playgroud)

  • 我无法相信这有效!Whyyyy?这些问题在Android中非常令人沮丧. (5认同)
  • 我可以解释为什么它有效吗? (2认同)

Had*_*des 16

用这个,

public class MyPagerAdapter extends android.support.v4.app.FragmentStatePagerAdapter
Run Code Online (Sandbox Code Playgroud)