【发布时间】:2016-12-27 17:03:18
【问题描述】:
我知道有很多方法可以为 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>
所以我在 RecyclerView 填充其项目之前显示 Loading ProgressBar。现在如果服务器没有任何项目怎么办。在这种情况下,我的 RecyclerView 始终为空,我的 Loading ProgressBar 始终对用户可见。
因此,我不想显示无限期的 ProgressBar,而是显示一些空布局。例如。 “未找到数据”或类似消息。
最终结果应该是:ProgressBar 应该在数据加载到 RecyclerView 之前一直显示,并且一旦数据加载,ProgressBar 应该是不可见的。但如果服务器中没有数据,则应该显示一些空布局而不是 ProgressBar。
在普通的 RecyclerView 中,我们有一个数据集(一些 ArrayList 等),如果它是空的,那么我们可以显示该空布局。但在 FirebaseRecyclerAdapter 的情况下,我的 Activity 或 Context 中没有 Snapshot 的引用。我也没有任何回调告诉我服务器中没有数据。
任何解决方法都会有很大帮助。
【问题讨论】:
标签: android firebase android-recyclerview firebase-realtime-database firebaseui