android - 如何解决屏幕旋转时 viewpager 中的选项卡覆盖的问题?

标签 android android-fragments android-viewpager

在这里,我有一个带有 ViewPager 的 Activity ,它有 4 个选项卡,这是 Activity 屏幕截图链接。

1

这是垂直屏幕时选项卡 4 的屏幕截图。 当activity打开时,我切换到第四个选项卡,然后切换到第二个,旋转屏幕,第四个选项卡的一部分会覆盖在第二个选项卡上,但是当切换到第一个和第三个时,它不会发生, 图片如下:

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

}

任何你想看的代码请在下面评论。

最佳答案

正如你所说,当分页器不可见时你不会销毁Item,所以它仍然在内存中,并重绘它

关于android - 如何解决屏幕旋转时 viewpager 中的选项卡覆盖的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31209022/

相关文章:

android - 设备 api 级别 < 11 的 DialogFragments

android - 显示图像的 fragment 中的内存问题

android - View 寻呼机中的 webview 方向发生变化

android - Android-如何使用Recyclerview滑动TabLayout中的选项卡

android - 我想在 fragment 中创建图像幻灯片 View ?

android - 调用 setAdapter 时 ViewPager 并不总是刷新,FragmentStatePagerAdapter

java - Rect 和 Rectangle 有什么区别?

android - 从android中的文本文件中读取

android - 使用 getInputImage 和 MediaCodec 进行编码

java - 在通知点击时启动现有 Activity