我在我的应用中使用FragmentStatePagerAdapter。 我的问题是,当我在做notifyDataSetChanged()时,它只调用getCount()而不是getItem()。 getCount没有返回0。 这是我的FragmentStatePagerAdapter:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
怎么可能在pagerAdapter.notifyDataSetChanged();
之后只调用getCount()并且之后没有调用getItem(int position)
?
谢谢!
答案 0 :(得分:0)
从Issue 19001开始,我发现需要在int getItemPosition(Object object)
子类中实现FragmentStatePageAdapter
。默认情况下,假定此方法返回POSITION_UNCHANGED
,不会触发调用getItem。但是,当我实现return POSITION_NONE
以外的任何其他内容时,我也遇到了问题(android支持库中可能存在的错误)。
来自我的适配器的片段:
@Override
public Fragment getItem(int position) {
return DiceRollerFragment.instantiate(position);
}