自己在寫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,改了還是會有其他問題。
需要整個刪掉。具體這個函數對我的代碼造成的影響慢慢去研究,先把這個問題記錄下來。