为什么这些Recyclerview项目没有填写他们的意见?

时间:2017-09-13 16:00:30

标签: android android-recyclerview android-scrollview

我在SwipeRefreshLayout内的NestedScrollView中有一个水平的RecyclerView。据推测,这是导致错误的原因。当我加载数据时,孩子们显示正常,但是一旦我滚动到一个结尾并重新注册,孩子们就不会填写他们的观点。

In action

我发现了一些关于如何使用布局约束,不同父视图类型和更改焦点来解决此问题的不同建议,但问题仍然存在。 onBindViewHolder肯定会被调用,但由于某种原因绑定不会发生?

2 个答案:

答案 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)

发现问题:在我的视图中,我将某些布局设置为不可见,因为视图被回收,所以它们没有显示。我所要做的只是将它们设置为可见。

从此解决方案https://stackoverflow.com/a/29325270/6136947