Aurangzeb
Aurangzeb

Reputation: 181

RecyclerView in CoordinatorLayout shows items only after scrolling down

I am using a RecyclerView in a CoordinaterLayout to display search result items. However the items show only after scrolling a bit, and I cannot figure out why. I assume it would have to do with the RecyclerView not adjusting to the reduced size in the CoordinatorLayout. Any clues to this?

Items showing when scrolling

Layout is pretty much straighforward and the basic template provided by android studio except for the RecyclerView.

activity_results_recycler.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    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" android:fitsSystemWindows="true"
    tools:context="com.alamgir_swi.abjad.ResultsRecyclerActivity">

    <android.support.design.widget.AppBarLayout android:id="@+id/app_bar"
        android:fitsSystemWindows="true" android:layout_height="@dimen/app_bar_height"
        android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/toolbar_layout"
            android:fitsSystemWindows="true" android:layout_width="match_parent"
            android:layout_height="match_parent" app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:contentScrim="?attr/colorPrimary">

            <android.support.v7.widget.Toolbar android:id="@+id/toolbar"
                android:layout_height="?attr/actionBarSize" android:layout_width="match_parent"
                app:layout_collapseMode="pin" app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.CollapsingToolbarLayout>
    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_results_recycler" />

    <android.support.design.widget.FloatingActionButton android:id="@+id/fab"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_margin="@dimen/fab_margin" app:layout_anchor="@id/app_bar"
        app:layout_anchorGravity="bottom|end" android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

content_results_recycler.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:showIn="@layout/activity_results_recycler"
    tools:context="com.alamgir_swi.abjad.ResultsRecyclerActivity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/abjadList"
    >
</android.support.v7.widget.RecyclerView>

abjad_entry.xml:

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Text"
        android:id="@+id/abjad_entry"
        android:layout_gravity="right" />
</RelativeLayout>

Thank you for any hints.

Upvotes: 0

Views: 783

Answers (1)

Aurangzeb
Aurangzeb

Reputation: 181

Found the source of the problem.

I needed to call notifyDataSetChanged() on my instance of RecyclerView.LayoutManager after getting data from the CursorLoader.

Upvotes: 1

Related Questions