2015-07-03 67 views
1

在这里,我有一个活动与ViewPager,它有4个选项卡,这里是活动的屏幕截图链接。如何解决这个问题,在viewpager覆盖屏幕旋转时,选项卡?

1

这里是屏幕截图片4,当屏幕是垂直的。 当活动打开时,我切换到第四个标签,然后切换到第二个,旋转屏幕,第四个标签的一部分将叠加在第二个标签上,但是当切换到第一个和第三个时,它赢得了'吨发生, 画面是如下:

片4:

2

标签1:

3

标签2:

4

我怎么可能已经解决了这个问题?

以下是viewpager的适配器:

public class MainPageFragmentPageAdapter extends FragmentPagerAdapter { 

SparseArray<Fragment> fragmentSparseArray = new SparseArray<Fragment>(); 

private Fragment currentSelectedFragment; 

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

@Override 
public Fragment getItem(int position) { 
    if (fragmentSparseArray.get(position) == null) { 
     Fragment fragment = null; 
     switch (position) { 
      case 0: 
       fragment = new NewHomePageFragment(); 
       break; 
      case 1: 
       fragment = new NewDiscoverFragment(); 
       break; 
      case 2: 
       fragment = new NewUserMessageFragment(); 
       break; 
      case 3: 
       fragment = new NewUserDetailFragment(); 
     } 
     fragmentSparseArray.put(position, fragment); 
    } 
    currentSelectedFragment = fragmentSparseArray.get(position); 
    return currentSelectedFragment; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
} 

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

public Fragment getCurrentSelectedFragment() { 
    return currentSelectedFragment; 
} 

} 

你想看到的任何代码,请在下面发表评论。

+0

我发现这个问题是关于名为destroyItem的方法,当我覆盖此方法将是好的,但它会报告一个异常,id重复 –

+0

欢迎来到StackOverflow!我在你的问题中嵌入了你的图片。请使用[编辑]按钮来更正文字,以便您的问题按照您的要求进行描述。我不得不猜想你想要的图像,因为它不是很清楚。 –

+0

非常感谢你! –

回答

1

正如你所说的,当寻呼机是不可见你不destroyItem,所以它仍然会在内存中,并重绘

+0

绝对是! @lichangadd –