2017-01-05 49 views
10

我最近从支持库recyclerview-v7:23.1.1更新到recyclerview-v7:25.1.0。Recyclerview onBindViewHolder调用LinearLayout中的所有项目,并带有权重

我的布局包含2个在屏幕上分割50%的recylerviews。 XML代码如下:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView1" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:scrollbars="none"/> 

    <android.support.v4.widget.Space 
     android:layout_width="@dimen/two_dp" 
     android:layout_height="match_parent" 
     android:background="@color/dark_gray"/> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recyclerView2" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:scrollbars="none"/> 

</LinearLayout> 

现在onBindViewHolder被称为所有列表项而不是只是可见的项目。 更新到支持库25.1.0后开始发生。

它是工作正常,如果权重被删除,但有2个recylcerviews并排是必需的。

如何让recyclerview回收视图而不是全部加载?

更新:它可以在棉花糖和以上设备上正常工作。这个问题存在于棒棒糖或以下。 你可以在这里找到一个演示项目:https://bitbucket.org/aniketit/recyclerviewtest

+1

发布相关的onBindViewHolder代码 –

+0

@BradleyWilson onBindViewHolder被调用,而不管它里面的代码。我尝试了一个空的onBindViewHolder函数。 –

+0

好吧,这很奇怪。我无法真正帮助您只使用RemllerViews的XML,您能发布任何您认为相关的代码或可能导致问题的代码(项目行布局等等) –

回答

4

我遇到了删除加权和0dp元素后仍然存在的相同问题。在我的情况下,这个问题相当微不足道 - 我无意中将我的RecyclerView放入了一个带有fillViewPort = true的NestedScrollView。这会导致适配器为视图构建所有元素,并且您会注意到响应速度显着延迟。

如果您在简单的旧ScrollView中只有RecyclerView,则会发生该问题。

2

我有同样的问题。 RecyclerView在棉花糖中的回收很好,但之前没有。

我的错误是将我的RecyclerView放入ScrollView中。 你应该检查你是否有滚动视图,如果是的话,删除它,你的问题将解决棉花糖前设备。

1

与图书馆>比23.1.1你可以删除

的android:layout_width = “0dp”

删除它和所有完美的作品。

+1

这解决了我的问题!我为我的加权布局而不是0dp设置了layout_width =“match_parent”,现在它可以正常工作。 –

相关问题