【发布时间】:2013-12-24 16:21:33
【问题描述】:
我在我的应用程序中使用 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)?
谢谢!
【问题讨论】:
-
片段列表有什么真正的变化吗?如果不是,则不应调用
getItem()。 getCount() 被调用只是第一次检查大小是否改变的例行调用。 -
getItem() 怎么知道有没有变化?!无论如何,fragmentList 的大小都在变化……
-
一旦发生更改并且需要填充这些更改,就会调用 get item。这就是我的意思。
-
好的,但正如我所说,fragmentList 正在改变
-
你是替换旧的还是添加新的?
标签: android notifydatasetchanged fragmentstatepageradapter