我在我的应用中使用FirestoreRecyclerView
。我想同时显示ProgressBar
FirestoreRecyclerView
正在加载数据,如果RecyclerView
中没有要显示的数据,请显示TextView
,其文本为“找不到数据”。如果要显示数据,则同时隐藏TextView
和ProgressBar
并在RecyclerView
中显示数据。请指导如何实现此目标?
答案 0 :(得分:0)
您可以使用两个布局作为主布局的子布局。
第一个布局同时包含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);