这是我正在使用的PagingAdapter
:
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;
}
}
这会为前两个标签创建相同的视图。我希望所有标签都有单独的内容
我将WebView
放在所有4个标签中。
在活动中,我这样做:
mViewPager.setOffscreenPageLimit(3);
答案 0 :(得分:0)
首先,您的方法instantiate
正在返回片段吗?
是否使用setArguements
在该方法中隐式添加了param,如果不是,您可能想要更改它。另一方面,FragmentManager将在需要时调用每个片段的默认构造函数。所以你必须保留它们(不要重载构造函数),并在destroyItem中尝试删除真实的片段。
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
getFragmentManager().beginTransaction().remove((Fragment)(object)).commit();
}
答案 1 :(得分:0)
在适配器中使用getItem
,并在new
使用return new ActivityFragment();
实例化您的片段
fragment.setArgument(bundle);
如果您想添加捆绑信息而不是首先创建您的片段,而不是在
中添加捆绑包if(0<=sparseArray.indexOfKey(position))
sparseArray.remove(position);
在调用super
之前在deateyItem中使用这些行return
答案 2 :(得分: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;
}