【发布时间】:2017-10-20 20:06:27
【问题描述】:
我正在使用FirebaseIndexRecyclerAdapter,它获取一个 keyRef 和 dataRef,并且对于获取所有 dataRef 的子级非常有帮助,这些子级的键作为 keyRef 中的子级存在。
数据正在正确显示,但如果我覆盖 onDataChanged 以隐藏进度条和/或显示空状态取决于 itemsCount(我已经用 FirebaseRecyclerAdapter 完成的事情并按预期工作) 但getItemCount 总是返回 0(!)
private class MYAdapter extends FirebaseIndexRecyclerAdapter<Item, ItemHolder> {
.
.
@Override
protected void onDataChanged() {
super.onDataChanged();
// getItemCount() == 0 here always
}
.
.
}
我已经对其进行了调查,原因是FirebaseIndexRecyclerAdapter 正在使用FirebaseIndexArray,它覆盖getItemCount 并返回mDataSnapshots.size(),但尚未加载数据-onDataChanged 被调用是因为keyRef 已加载- 实际上我可以在调试中看到密钥已加载(具有正确的计数)但不幸的是它们是私有的,所以我不能使用它们来获取计数。
我知道我可以覆盖onChildChanged 然后调用getItemCount 并获得正确的计数(我已经完成)但我仍然不知道是否没有项目,我需要显示空状态。
使用com.firebaseui:firebase-ui:1.2.0
我有什么遗漏吗?
注意 - 我知道我可以在数据旁边管理我自己的计数(子)并在设置适配器之前加载它,但我将其保存为最后的手段。
谢谢!
【问题讨论】:
-
对于我们大多数人来说,阅读文字比阅读代码更容易。请张贴minimal code that reproduces the problem。但是,如果您认为自己发现了错误,最好报告issue on the FirebaseUI-Android github repo。
-
@FrankvanPuffelen 我已经更新了这个问题。谢谢。
标签: android firebase-realtime-database android-recyclerview firebaseui