在这里,我有一个带有 ViewPager 的 Activity ,它有 4 个选项卡,这是 Activity 屏幕截图链接。
这是垂直屏幕时选项卡 4 的屏幕截图。 当activity打开时,我切换到第四个选项卡,然后切换到第二个,旋转屏幕,第四个选项卡的一部分会覆盖在第二个选项卡上,但是当切换到第一个和第三个时,它不会发生, 图片如下:
标签 4:
选项卡 1:
标签 2:
我该如何解决这个问题?
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;
}
}
任何你想看的代码请在下面评论。
最佳答案
正如你所说,当分页器不可见时你不会销毁Item,所以它仍然在内存中,并重绘它
关于android - 如何解决屏幕旋转时 viewpager 中的选项卡覆盖的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31209022/