RecycleView displaying only the first item

You need to change your item_layout height as wrap_content if your are using Android Support Library v 23.2.0 and above

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/tv_detail"/>
</RelativeLayout>

I too made this common mistake. Just change your parent LinearLayout - height should be "wrap_content"

<LinearLayout
android:layout_width="match_parent"
android:layout_height = "wrap_content"
..... >
..
..
</LinearLayout>

Set the height to wrap_content of the RelativeLayout in the item_layout.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/tv_detail"/>
</RelativeLayout>

I had same problem, when RecyclerView was wrapped in ScrollView. You should use NestedScrollView instead.

    <android.support.v4.widget.NestedScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

          <!-- other content -->

                <android.support.v7.widget.RecyclerView
                    android:id="@+id/my_recycler"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"/>
        </LinearLayout>

 </android.support.v4.widget.NestedScrollView>