'How to Set Recycler View Height Dynamically Using wrap_content?
I have a fragment containing a recycler view which is populated using data fetched from a server. This fragment is inside a FragmentContainerView within the activity. I want the height of the recyclerView to be dynamic. Essentially using wrap_content as the height parameter, but when I do that the recyclerView has a height of 0 and doesn't show up at all.
Why doesn't wrap_content dynamically adjust the height for my fragmentContainerView height?
Fragment
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/calendarRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
Activity
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".activities.DashboardActivity">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/fragmentContainerView"
android:name="com.yambo.yates.fragments.WorkoutCalendarFragment"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:layout="@layout/workout_calendar_fragment" />
</androidx.constraintlayout.widget.ConstraintLayout>
Solution 1:[1]
RecyclerViews already dynamically adjust height based on contents. So as long as your XML is at least wrap_content it should display everything. Are you sure your data is valid?
Also, if your fragment only contains the RecyclerView you can remove the parent ConstraintLayout and change your XML to:
<androidx.recyclerview.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/calendarRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | zen_of_kermit |
