Я использую FirestoreRecyclerView в своем приложении. Я хочу показать ProgressBar, пока FirestoreRecyclerView загружает данные, и если в RecyclerView нет данных для отображения, тогда покажите TextView, у которого есть текст «данные не найдены». Если есть данные для отображения, скройте как TextView, так и ProgressBar и отобразите данные в RecyclerView. Пожалуйста, объясните, как этого добиться?




Вы можете использовать два макета в качестве дочерних элементов основного макета.
Первый макет содержит как TextView, так и ProgressBar, и его видимость установлена на visible.
Второй макет — это FirestoreRecyclerView, для которого установлено значение invisible или gone.
Как только ваш код получит данные для этого RecyclerView, скройте первый макет и сделайте RecyclerView видимым.
Вот пример:
MainLayout.xml
<LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"
android:orientation = "vertical" android:layout_width = "match_parent"
android:layout_height = "match_parent">
<!-- the progress layout -->
<RelativeLayout
android:id = "@+id/layout_progress"
android:visibility = "visible"
android:layout_width = "match_parent"
android:layout_height = "match_parent">
<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "Loading data"/>
<ProgressBar
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:max = "100"
android:progress = "0"/>
</RelativeLayout>
<FirestoreRecyclerView
android:id = "@+id/firestoreRecyclerView"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:visibility = "gone" />
</LinearLayout>
Код
//...
//When we received all the data to display in recyclerView, do this
layout_progress.setVisibility(View.GONE);
firestoreRecyclerView.setVisibility(View.VISIBLE);
Спасибо за ответ. Но я хочу использовать recyclerview, как этот stackoverflow.com/questions/49277797/…