我在 FragmentPagerAdapter 中有大约 20 个片段,其中包含一个从中选择片段的列表,因此没有片段的重新创建。
private List<TitledFragment> fragments;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
this.fragments = new ArrayList<TitledFragment>();
}
@Override
public Fragment getItem(int i) {
return fragments.get(i).getFragment();
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return fragments.get(position).getTitle();
}
public synchronized List<TitledFragment> getFragments() {
return fragments;
}
public synchronized void addFragment(TitledFragment fragment) {
fragments.add(fragment);
notifyDataSetChanged();
}
FragmentPagerAdapter 设置为 ViewPager 的适配器,然后我重新排序片段(洗牌只是为了测试)
Collections.shuffle(mSectionsPagerAdapter.getFragments());
mSectionsPagerAdapter.notifyDataSetChanged();
并且由于某种原因,只有标题的顺序被更改,即使它为 getItem 返回不同的片段,因为顺序不同。为什么会这样,我该如何解决?