Недавно я обновил из библиотеки поддержки recyclerview-v7: 23.1.1 для recyclerview-v7: 25.1.0.
My Layout содержит 2 recylerviews, разделенных на 50% на экране. Код 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 повторных сеанса.
Как сообщить recyclerview для повторного использования представлений вместо загрузки всех?
ОБНОВЛЕНИЕ: он отлично работает на устройствах Marshmallow и выше. Проблема присутствует в Lollipop или ниже. Здесь вы можете найти демонстрационный проект: https://bitbucket.org/aniketit/recyclerviewtest