Android ViewPager创建重复视图

Android ViewPager创建重复视图,android,android-fragments,android-viewpager,Android,Android Fragments,Android Viewpager,这是我正在使用的分页适配器: public class PagingAdapter extends FragmentStatePagerAdapter { Context context; public PagingAdapter(FragmentManager fm, Context con) { super(fm); context = con; } @Override public Fragment getItem

这是我正在使用的
分页适配器

public class PagingAdapter extends FragmentStatePagerAdapter {
    Context context;

    public PagingAdapter(FragmentManager fm, Context con) {
        super(fm);
        context = con;
    }

    @Override
    public Fragment getItem(int index) {
        try {
            switch (index) {
                case 0:
                    return Fragment.instantiate(context, ActivityFragment.class.getName());
                case 1:
                    return Fragment.instantiate(context, GroupFragment.class.getName());
                case 2:
                    return Fragment.instantiate(context, MessageFragment.class.getName());
                case 3:
                    return Fragment.instantiate(context, NotificationFragment.class.getName());
            }

            return null;
        }
        catch (Exception ex)
        {
            ex.printStackTrace();
            return  null;
        }
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 4;
    }
} 
这将为前两个选项卡创建相同的视图。我希望所有选项卡都有单独的内容。
我正在所有4个选项卡中放置
WebView

在活动中,我正在这样做:

mViewPager.setOffscreenPageLimit(3);

首先,您的方法
实例化
是否返回一个片段

它是否使用
setArguements
在该方法中隐式添加参数?如果不是,您可能希望更改为该参数。另一方面,FragmentManager将在需要时调用每个片段的默认构造函数。因此,您必须保留它们(不要重载构造函数),并在destroyItem中尝试真正删除片段

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
    getFragmentManager().beginTransaction().remove((Fragment)(object)).commit();
}
在适配器中使用
SparseArray
,在
getItem
中使用
new
实例化片段,如

return new ActivityFragment();
如果要添加捆绑信息,请首先创建片段,然后在

fragment.setArgument(bundle);
在给super打电话之前,在你的deateyItem中使用这些线路

if(0<=sparseArray.indexOfKey(position))
sparseArray.remove(position);

如果(0你所说的“独立视图”是什么意思?你确定你没有将错误的布局放大吗

GroupClassFragment.java class
请检查该方法

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View myCorrectView = inflater.inflate(R.layout.my_correct_view,container,false);
    return myCorrectView;
}

你期待什么?@Blackbelt:谢谢。我希望所有选项卡都有单独的内容。每个Web视图应该加载不同的内容?建议:切换到使用
FragmentPagerAdapter
,因为你只有4个页面,而且你正在保存最近的3个页面,这些页面现在都在屏幕外。另外,你能为显示si的页面显示Web视图加载代码吗相似的内容。。