为什么我不能在FragmentsStatePagerAdapter中使用FragmentSupportManager?

时间:2014-03-03 15:04:38

标签: android fragment adapter fragmentmanager

在FragmentStatePagerAdapter的android文档中,解释了适配器可以像这样设置:

public static class MyAdapter extends FragmentStatePagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        return MyFragment.newInstance();
    }
}

我想使用它,但是,我还想管理使用FragmentManager添加的片段。我怎样才能做到这一点?我的方法是抛出NullPointerException

public static class MyAdapter extends FragmentStatePagerAdapter {
    private FragmentManager mFragmentManager;

    public MyAdapter(FragmentManager fm) {
        super(fm);
        mFragmentManager = fm;
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        mFragmentManager.beginTransaction()
            .add(MyFragment.newInstance(), MyFragment.TAG).commit();
        return mFragmentManager.findFragmentByTag(MyFragment.TAG);
    }
}

1 个答案:

答案 0 :(得分:0)

  

我该怎么做?

您从头开始编写自己的PagerAdapter实现。 FragmentPagerAdapterFragmentStatePagerAdapter将执行自己的片段交易,与您的事件发生冲突。