重点代码如下:一下代码已经完整执行,但是还是报了java.lang.IllegalStateException: Fragment already added重复添加的错误,求大神解决啊!
@Override
public Object instantiateItem(ViewGroup container, int position) {
// System.out.println("instantiateItem...............");
// 得到缓存的fragment
Fragment fragment = (Fragment) super.instantiateItem(container,
position);
// 得到tag
String fragmentTag = fragment.getTag();
if (fragmentFlags.get(position % fragmentFlags.size())) {
System.out.println("进入instantiateItem该方法了");
FragmentTransaction beginTransaction = fm.beginTransaction();
// 移除旧的fragment
beginTransaction.remove(fragment);
// 换成新的fragment
fragment = mFragments.get(position);
// 添加新fragment时必须用前面获得的tag
beginTransaction.add(container.getId(), fragment, fragmentTag);
beginTransaction.attach(fragment);
beginTransaction.commit();
//复位更新标志
fragmentFlags.set(position, false);
}
return fragment;
}