RecyclerViewに空のビューを表示する方法がたくさんあることは知っています。しかし、私の質問はFirebaseRecyclerViewです。空のビューを持つFirebaseRecyclerAdapter
私のレイアウトは次のとおりです。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/feed_recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical" />
<ProgressBar
android:id="@+id/feed_loading"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:visibility="gone"/>
</RelativeLayout>
RecyclerViewは、その項目を埋める前に、だから私はロードプログレスバーを表示しています。サーバーにアイテムがない場合はどうなりますか?この状況で私のRecyclerViewは常に空であり、私のLoading ProgressBarは常にユーザーに見えます。
したがって、ProgressBarを無期限に表示する代わりに、空のレイアウトをいくつか表示する必要があります。例えば。 「データが見つかりません」などのメッセージ。
最終結果は次のとおりです。ProgressBarは、データがRecyclerViewにロードされ、データがロードされるまで表示される必要があります。ProgressBarは不可視です。しかし、サーバーにデータが存在しない場合は、ProgressBarの代わりに空のレイアウトを表示する必要があります。
通常のRecyclerViewでは、データセット(ArrayListなど)があり、空の場合は空のレイアウトを表示できます。しかし、FirebaseRecyclerAdapterの場合、私は自分のアクティビティやコンテキストにスナップショットの参照を持っていません。また、サーバーにデータが存在しないことを示すコールバックはありません。
いずれの回避策も多大に役立ちます。
おかげで、その偉大なトリックをし、私のために働きました。 –
問題ありません。喜んで助けてください。 –
onItemRangeRemoved()が空のリストになったかどうかを確認できないようです。 AdapterDataObserverとdbRef.addValueEventListener()を呼び出すだけの違いは何ですか? –