在做fragment套嵌viewpager,中再套嵌fragment的时候出现了这种报错。
在设置适配器的时候用了以下几种都没成功:
3、getSupportFragmentManager();
经过仔细排查,还是自己平时习惯的问题。
一般我平时创建适配器代码如下:
PagerAdapter mAdapter = new FragmentStatePagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { if (position == 0) { return mThreeFragment; } else { return mOneFragment; } } @Override public int getCount() { return 2; } };
这样比较简洁。但是在套嵌fragment时候会一直报标题的错误。
解决方案:
public class PaAdapter extends FragmentStatePagerAdapter { public PaAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if (position == 0) { return new OneFragment(); } else { return new TwoFragment(); } } @Override public int getCount() { return 2; } }
重新定义一个adapter类,并调用super(fm);
这样就可以解决问题了,并且实现父viewpager套嵌子viewpager正常滑动效果。