0

アプリで FragmentStatePagerAdapter を使用しています。私の問題は、notifyDataSetChanged() を実行しているときに、getItem() ではなく getCount() のみを呼び出していることです。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)でしょうか? ありがとう!

4

1 に答える 1

0

Issue 19001から、サブクラスint getItemPosition(Object object)に実装する必要があることがわかりました。FragmentStatePageAdapterデフォルトでは、このメソッドはPOSITION_UNCHANGEDgetItem の呼び出しをトリガーしない戻り値と見なされます。しかし、私はreturn POSITION_NONE.

私のアダプターからのスニペット:

@Override
public Fragment getItem(int position) {
    return DiceRollerFragment.instantiate(position);
}
于 2014-04-29T06:37:53.473 に答える