Я знаю, что есть много способов иметь пустой вид для RecyclerView. Но мой вопрос касается FirebaseRecyclerView.
Мой макет:
<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>
Итак, я показываю Load ProgressBar, прежде чем RecyclerView заполнит его элементы. Теперь, что, если у сервера нет элемента. В этой ситуации мой RecyclerView всегда пуст, и моя загрузка ProgressBar всегда видна пользователю.
Итак, вместо того, чтобы показывать ProgressBar на неопределенный период, я хочу показать некоторый пустой макет. Например. "Нет данных" или что-то подобное.
Конечный результат должен быть: ProgressBar должен отображаться до тех пор, пока данные не будут загружены в RecyclerView, и как только данные будут загружены, ProgressBar должен быть невидим. Но если данных нет в сервере, вместо ProgressBar следует указывать пустую макет.
В обычном RecyclerView у нас есть набор данных (некоторые ArrayList и т.д.), и если он пуст, мы можем показать этот пустой макет. Но в случае FirebaseRecyclerAdapter у меня нет ссылки на Snapshot в моей деятельности или контексте. Также у меня нет обратного вызова, который говорит мне, что на сервере нет данных.
Любое обходное решение поможет много.