IllegalStateException: No host靠谱解决方案fragment与viewpager相互套嵌bug

xiaoxiao2021-02-28  83

在做fragment套嵌viewpager,中再套嵌fragment的时候出现了这种报错。

在设置适配器的时候用了以下几种都没成功:

1、getChildFragmentManager()

2、 getFragmentManager()

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正常滑动效果。

转载请注明原文地址: https://www.6miu.com/read-83888.html

最新回复(0)