У меня есть вертикальный recyclerview (с GridLayoutManager
) внутри другого recyclerview (с LinearLayoutManager
). Проблема, с которой я сейчас сталкиваюсь, заключается в том, что внутреннее recyclerview (с GridLayoutManager) связывает все его элементы одновременно, даже представления, которые на данный момент не отображаются на экране (onBindViewHolder()
вызывается для всех его элементов).
Чтобы предоставить вам больше информации, в моем файле макета я поставил высоту моего вида ресайклера как wrap_content
.
Я думаю, что проблема в том, что есть два вложенных вертикально recyclerviews, когда родительский RV хочет измерить свои дочерние элементы, а дети - это еще один RV, в onMeasure()
он вычисляет размер, необходимый для всего RV, а не только которую он хочет привязать на экране.
Любая идея, как это решить?
Вот файл макета для моего внешнего recyclerview:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/component_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
И вот код для моего внутреннего recyclerview:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/gutter"
android:paddingBottom="@dimen/gutter">
<TextView
android:id="@+id/title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/gutter"
android:textSize="30sp"
android:textColor="@android:color/white"
android:fontFamily="sans-serif-thin"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/my_slider"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
P.S.: Я использую этот делегат адаптера для моего внешнего recyclerview: https://github.com/sockeqwe/AdapterDelegates