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

来源:互联网 发布:非诚勿扰恶搞视频软件 编辑:程序博客网 时间:2024/06/05 19:52

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






阅读全文
0 0
原创粉丝点击