Q:

How can make the RecyclerView fill out the free space when I use ConstraintLayout?

I'm a beginner of ConstraintLayout of Android Studio 3.2.1, it seems that ConstraintLayout is hard to operate.
I hope that the four button located the bottom of screen, and RecyclerView control fill out all free space of the screen, but the following code doesn't do it as my expectation, you can see the following Image.
How can I fix it?
BTW, the modified Code can't work well too.
Modified Code 
  <android.support.v7.widget.RecyclerView
            android:id="@+id/mRecyclerView"
            android:layout_width="0dp"
            android:layout_height="0dp"

Layout Code 
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">

    <ImageButton
            android:id="@+id/btnOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"                
            app:srcCompat="@drawable/delete32"

            app:layout_constraintHorizontal_chainStyle="spread"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toLeftOf="@+id/btnAddEdit" />

    <ImageButton
            android:id="@+id/btnAddEdit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"               
            app:srcCompat="@drawable/delete32"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/btnOne"
            app:layout_constraintRight_toLeftOf="@+id/btnThree" />

    <ImageButton
            android:id="@+id/btnThree"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"             
            app:srcCompat="@drawable/delete32"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/btnAddEdit"
            app:layout_constraintRight_toLeftOf="@+id/btnFour" />

    <ImageButton
            android:id="@+id/btnFour"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"               
            app:srcCompat="@drawable/delete32"

            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintLeft_toRightOf="@+id/btnThree"
            app:layout_constraintRight_toRightOf="parent" />

    <android.support.v7.widget.RecyclerView
            android:id="@+id/mRecyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toBottomOf="parent"
            app:layout_constraintBottom_toTopOf="@+id/btnOne"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"/>

</android.support.constraint.ConstraintLayout>

Image

A:

You have to align the RecyclerView to top of parent layout and have to set the "android:layout_height " of recyclerview to 0dp.
I modified your layout code and it is working fine. Copy it and compare your with this.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">
<ImageButton
    android:id="@+id/btnOne"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_chainStyle="spread"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toLeftOf="@+id/btnAddEdit"
    app:srcCompat="@drawable/delete32" />

<ImageButton
    android:id="@+id/btnAddEdit"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/btnOne"
    app:layout_constraintRight_toLeftOf="@+id/btnThree"
    app:srcCompat="@drawable/delete32" />

<ImageButton
    android:id="@+id/btnThree"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/btnAddEdit"
    app:layout_constraintRight_toLeftOf="@+id/btnFour"
    app:srcCompat="@drawable/delete32" />

<ImageButton
    android:id="@+id/btnFour"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toRightOf="@+id/btnThree"
    app:layout_constraintRight_toRightOf="parent"
    app:srcCompat="@drawable/delete32" />

<android.support.v7.widget.RecyclerView
    android:id="@+id/mRecyclerView"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    app:layout_constraintBottom_toTopOf="@+id/btnAddEdit"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

