Wiem, że istnieje wiele sposobów na uzyskanie pustego widoku na widok RecyclerView. Ale moje pytanie dotyczy FirebaseRecyclerView.FirebaseRecyclerAdapter z pustym widokiem
Mój układ jest:
<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>
Więc pokazuję Loading ProgressBar przed RecyclerView wypełnia swoje pozycje. Teraz, jeśli serwer nie ma żadnego elementu. W tej sytuacji mój RecyclerView jest zawsze pusty i mój ProgressBar ładowania zawsze widoczny dla użytkownika.
Zamiast pokazywać ProgressBar na czas nieokreślony, chcę pokazać pusty układ. Na przykład. "Nie znaleziono danych" lub coś podobnego.
Końcowy wynik powinien wyglądać następująco: Pasek postępu powinien zostać wyświetlony, dopóki dane nie zostaną załadowane do okna RecyclerView, a po załadowaniu danych pasek postępu powinien być niewidoczny. Ale jeśli na serwerze nie ma żadnych danych, powinien zostać wyświetlony pusty układ zamiast ProgressBar.
W normalnym RecyclerView mamy zestaw danych (niektóre ArrayList, itp.) I jeśli jest pusty, możemy pokazać ten pusty układ. Ale w przypadku FirebaseRecyclerAdapter, nie mam odniesienia do Migawki w mojej Aktywności lub Kontekście. Nie mam też żadnego wywołania zwrotnego, które mówi mi, że żadne dane nie są obecne na serwerze.
Każde obejście bardzo pomoże.
Dzięki za rozwiązanie, jego wielki podstęp i pracował dla mnie. –
Nie ma problemu. Miło, że mogłem pomóc. –
Nie mogę sprawdzić, czy funkcja onItemRangeRemoved() dała pustą listę. Jaka jest różnica między AdapterDataObserver a zwykłym wywołaniem dbRef.addValueEventListener()? –