我正在使用FragmentPagerAdapter和ViewPager添加自定义片段,通过左右滑动来浏览列表中的下一个片段。请注意:我还从我的MainActivity发送了一些额外的数据,这些数据基于JSON响应通过bundle传递。
public class MyPagerAdapter extends FragmentPagerAdapter implements Serializable {
public List<Fragment> fragments;
public FragmentManager fm;
public MyPagerAdapter(FragmentManager fm) {
super(fm);
this.fm = fm;
this.fragments = new ArrayList<Fragment>();
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getCount() {
return fragments.size();
}
}
Fragment
添加新的片段,一切都正常运作。
MyPagerAdapter pageAdapter = new MyPagerAdapter(getSupportFragmentManager());
pager = (ViewPager)findViewById(R.id.myViewPager);
pageAdapter.fragments.add(new CustomFragment());
pager.setAdapter(pageAdapter);
但是我找不到一种合适的方法来将Fragment添加到列表的开头并进行滑动后退。
我尝试了两种方法:
pageAdapter.fragments.add(0, new CustomFragment());
除了将FragmentPagerAdapters的List更改为LinkedList并使用
pageAdapter.fragments.addFirst(new CustomFragment());
然后通过使用刷新适配器
pageAdapter.notifyDataSetChanged();
我一直在遇到以下异常:
java.lang.IllegalStateException: 无法更改片段 CustomFragment{2ead9520 #10 id=0x7f0a0002 android:switcher:2131361794:10} 的标签:原先为 android:switcher:2131361794:10,现在为 android:switcher:2131361794:11