0

Хочу добавить над списком элементы, которые будут уходить за предел экрана, при прокрутке recycler view. Проблема в том, что когда recyclerview находится внутри nestedScroll, список очень долго начинает загружаться т.к он содержит все товары из БД. Если вынести список за пределы recycler view, то он работает идеально без тормозов. Но в таком случае при прокрутке верхний элемент повисает над списком, а не уходит за предел экрана. Кто что посоветует?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"
android:padding="6dp">

<androidx.core.widget.NestedScrollView android:layout_width="match_parent" android:id="@+id/but1" android:layout_marginBottom="10dp" android:layout_height="wrap_content">

&lt;RelativeLayout
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;wrap_content&quot;&gt;

    &lt;ImageView
        android:id=&quot;@+id/imgcl&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;200dp&quot;
        android:src=&quot;@drawable/yandex_logo_en&quot;/&gt;

    &lt;androidx.recyclerview.widget.RecyclerView
        android:id=&quot;@+id/recycler_view&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_below=&quot;@id/imgcl&quot;
        android:scrollbars=&quot;none&quot; /&gt;

&lt;/RelativeLayout&gt;

</androidx.core.widget.NestedScrollView>

SMD 70
  • 53
  • 4

1 Answers1

2

Вы установили высоту у RecyclerView - wrap_content. Этим вы убрали все преимущества, которые даёт RecyclerView - отрисовку только того контента, котрый отображается на экране. Вместо этого теперь отображается весь контент, что и вызывает длительную отрисовку.

Правильный в данном случае способ - оставить только RecyclerView с высотой во весь экран. А то, что должно быть выше него - отображать в нём же, через другой тип ячейки. Вот тут описано как это сделать: https://ru.stackoverflow.com/a/510887/17609