我在SwipeRefreshLayout内的NestedScrollView中有一个水平的RecyclerView。据推测,这是导致错误的原因。当我加载数据时,孩子们显示正常,但是一旦我滚动到一个结尾并重新注册,孩子们就不会填写他们的观点。
我发现了一些关于如何使用布局约束,不同父视图类型和更改焦点来解决此问题的不同建议,但问题仍然存在。 onBindViewHolder肯定会被调用,但由于某种原因绑定不会发生?
答案 0 :(得分:0)
这种奇怪的事情是因为回收者视图的回收过程,在绑定视图(在视图持有者中)写的所有布局代码在回收时都会被忽略,要解决它,请添加以下代码:
RecyclerView.setRecyclerListener(new RecyclerView.RecyclerListener() {
@Override
public void onViewRecycled(RecyclerView.ViewHolder holder) {
((BusinessChildViewHolder) holder).onBind();
// onBind method inside your holder and it just applies the layout changes that you need
}
});
答案 1 :(得分:0)
发现问题:在我的视图中,我将某些布局设置为不可见,因为视图被回收,所以它们没有显示。我所要做的只是将它们设置为可见。