#java #android #kotlin #android-recyclerview
#java #Android #kotlin #android-recyclerview
Вопрос:
Мне нужно создать список на неделю (7 записей), каждая запись должна содержать список других записей, как в YAZIO, как я могу этого добиться?
Я попытался установить 7 RecyclerView
с высотой для переноса содержимого, но тогда возникает проблема: только первый отображается в полную высоту. Использование нескольких типов просмотра не подходит, поскольку я хочу использовать MaterialCardView
каждый день.
В конце концов я хочу добиться такого результата, в каждой строке может быть или не быть список:
На данный момент я добился этого, используя ListView
метод in RecyclerView
и пересчитывая ListView
высоту in onBindViewHolder()
. Это кажется неправильным, хотя это как-то работает
Ответ №1:
Для этого вы должны использовать nestedscrollview.
Вот пример XML-кода, который может отображать 2 разных recyclerview во всю его высоту.
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".com.example.thomas.EasyCount.BalanceFragment">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:background="#FFFFFF"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@ id/recycle_depenses1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<android.support.v7.widget.RecyclerView
android:id="@ id/recycle_pay_back"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txt_to_do"
android:layout_alignParentStart="true"
android:layout_marginTop="5dp"
android:background="?android:attr/selectableItemBackground"
/>
</RelativeLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
Итак, вы должны использовать nestedscrollview следующим образом :
<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:layout_width="match_parent"
android:orientation="vertical"
android:background="#FFFFFF"
android:layout_height="wrap_content">
//ALL OF YOUR CONTENT MUST BE IN THE LINEALAYOUT => Nested scroll must only have one child
</LinearLayout>
</android.support.v4.widget.NestedScrollView>