未调用FragmentStatePagerAdapter getCount()

时间:2013-12-24 16:21:34

标签: android notifydatasetchanged fragmentstatepageradapter

我在我的应用中使用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)? 谢谢!

1 个答案:

答案 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);
}