这个坑真的是玄学,报错信息显示rv没有绑定适配器,也就无法显示。不管怎么调试都没用:
这个rv是在fragment里的,最终确定问题发生在基类fragemnt中。
原来我的基类代码是这样:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
init(inflater.inflate(getResourseId(),null));
return inflater.inflate(getResourseId(),null);
}其中的getResourceID是抽象方法,返回布局Id。
通过调试发现init方法在子类中没有调用
当我把代码换成:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view=inflater.inflate(getResourseId(),null);
init(view);
return view;
}init就调用了,而且问题得到解决。可以发现两段代码其实相同,为什么效果完全不同嘞????
本文记录了一个关于Fragment中RecyclerView未正确绑定适配器的问题及解决方案。作者最初遇到rv未显示内容且提示未绑定适配器的错误,在经过调试后发现是由于基类Fragment中的onCreateView方法中init方法未被调用导致。通过调整代码顺序,将初始化操作提前到视图创建之后,成功解决了该问题。
8935

被折叠的 条评论
为什么被折叠?



