我在用着FirebaseIndexRecyclerAdapter https://github.com/firebase/FirebaseUI-Android/blob/master/database/src/main/java/com/firebase/ui/database/FirebaseIndexRecyclerAdapter.java它获取 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
并获得正确的计数(我已经完成),但我仍然不知道是否没有项目,并且我需要显示空状态。
Using com.firebaseui:firebase-ui:1.2.0
我缺少什么吗?
Note- 我知道我可以在数据旁边管理我自己的计数(子项),并在设置适配器之前加载它,但我将其保存为最后的手段。
Thanks!
所以,在打开一个issue https://github.com/firebase/FirebaseUI-Android/issues/719在 FirebaseUI-Android github 存储库中,按照 @Frank van Puffelen 的建议,我从 @SUPERCILEX 得到了答案说onDataChanged
确实被打破了FirebaseIndexRecyclerAdapter
并将在即将推出的 v2.0 中修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)