我想用PagerSlidingTabStrip将Fragment添加到FragmentStatePagerAdapter的中间。但我只能在最后的适配器中添加新的Fragnent。这是代码:
public class TabsPagerAdapter extends FragmentStatePagerAdapter {
private ArrayList<String> TABS = new ArrayList<String>();
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
TABS.add("First");
TABS.add("Second");
TABS.add("Third");
}
@Override
public Fragment getItem(int position) {
return CardFragment.newInstance(position);
}
@Override
public Parcelable saveState() {
return super.saveState();
}
@Override
public int getCount() {
return TABS.size();
}
@Override
public String getPageTitle(int position) {
return TABS.get(position);
}
}
这是我添加新片段的地方
adapter.TABS.add(1, "ffff");
adapter.notifyDataSetChanged();
int k = viewPager.getCurrentItem();
viewPager.setCurrentItem(k + 1);
pagerSlidingTabStrip.notifyDataSetChanged();
答案 0 :(得分:0)
我面临类似的问题,我通过在setAdapter()
之前再次调用setCurrentItem
来解决它,否则它将永远不会更新,直到列表滚动到索引middleIndex + 2:
viewPager.setAdapter(adapter);
viewPager.setCurrentItem(middleIndex);