2014-07-19 78 views
8

我正在一个片段中实现寻呼机适配器。当我加载屏幕第一次,它工作正常。如果我切换到其他片段并再次转到上一个片段,它将显示空屏幕。如果我在不同的水龙头之间滑动并再次移动到第一个选项卡,则会显示数据。Android视图寻呼机适配器显示空屏幕

我想回到可见的标签没有加载数据,但是一旦它们在滑动导航期间不在视图中,它将加载数据。

这是我的寻呼机适配器。

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; 
} 

}

我设置我的适配器这样

viewPager = (ViewPager) rootView.findViewById(R.id.my_pager); 
     mAdapter = new MyPagerAdapter(getActivity().getSupportFragmentManager()); 
     viewPager.setAdapter(mAdapter); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);   
+0

[第二次查看时使用FragmentPagerAdapter的ViewPager中的碎片]的可能重复(http://stackoverflow.com/questions/7746652/fragment-in-viewpager-using-fragmentpageradapter-is-blank-the-第二次 - 是) – blahdiblah

回答

13

使用此,

public class MyPagerAdapter extends android.support.v4.app.FragmentStatePagerAdapter 
29

只是检查,如果你正在使用getFragmentManager()初始化适配器,尝试使用getChildFragmentManager()这样的:

mAdapter = new MyPagerAdapter(getChildFragmentManager()); 
     viewPager.setAdapter(mAdapter); 
+4

我不能相信这个工作! Whyyyy?这些问题在Android中非常令人沮丧。 – Rui

+2

我可以解释为什么它的工作? – Bruse

+0

这仍然有效... – haventchecked

0

我的ViewPager是在一个片段。 我通过将FragmentPagerAdapter更改为FragmentStatePagerAdapter来解决此问题,并使用getFragmentManager()。 它工作正常;

0

使用FragmentStatePagerAdapter代替FragmentPagerAdapter

后您设置适配器

viewPager.setOffscreenPageLimit(6);\\ add the number of fragments you have 

这会记得在记忆的碎片,它绝不会显示空白的屏幕加入这一行。

相关问题