我在我的应用中使用了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)呢?谢谢!
发布于 2014-04-29 14:37:53
从Issue 19001中,我发现int getItemPosition(Object object)需要在FragmentStatePageAdapter子类中实现。默认情况下,此方法假定返回不会触发要调用的getItem的POSITION_UNCHANGED。然而,当我实现return POSITION_NONE之外的任何东西时,我也遇到了问题(可能是安卓支持库中的bug)。
来自我的适配器的代码片段:
@Override
public Fragment getItem(int position) {
return DiceRollerFragment.instantiate(position);
}https://stackoverflow.com/questions/20763860
复制相似问题