自己在写demo的过程中,遇到了一个问题一直找不到问题的原因所在,问题场景及描述如下:
首先,我是在Activity中创建了一个viewpager1,用于加载多个fragment,然后在第一个fragment中嵌套一个viewpager2,再在viewpager2中加载多个fragment,然后发现viewpager2中的fragment上的内容不显示。
具体代码太多,我就不贴了,说一下问题所在,问题原因出在viewpager2的adapter上了,这里我继承的是FragmentStatePagerAdapter,然后手贱导致了这个问题,把这个罪魁祸首现一下原型:
public class PageOneVPAdapter extends FragmentStatePagerAdapter {
private List<String> tabList;
private List<Fragment> fragmentList;
public PageOneVPAdapter(……){
…… //构造方法
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
return tabList.get(position);
}
//重点来了,就是他
@Override
public boolean isViewFromObject(View view, Object object) {
return false;
}
}
问题就出在isViewFromObject身上,把整个方法删掉就好了,别想着把return false改为return true,改了还是会有其他问题。
需要整个删掉。具体这个函数对我的代码造成的影响慢慢去研究,先把这个问题记录下来。