如果为空,如何隐藏 Firestore RecyclerView

Posted

技术标签:

【中文标题】如果为空,如何隐藏 Firestore RecyclerView【英文标题】:How to hide a Firestore RecyclerView if empty 【发布时间】:2021-01-18 10:22:49 【问题描述】:

我是 android 开发新手。目前,我正在使用 Firestore UI 来填充 RecyclerView。它工作正常但现在我想动态隐藏/显示 RecyclerView 如果它不包含数据或插入某些东西。覆盖我的适配器类中的 onDataChanged 方法,我注意到我可以正确地动态检测我的适配器中的项目数是否为 0。如何使用它使我的回收站视图可见或不可见?

【问题讨论】:

请不要发布您的代码截图或其他文本内容。而是发布实际文本,并使用 Stack Overflow 的格式化工具对其进行标记。您还需要向我们展示更多背景信息。 【参考方案1】:

一种简单的方法是告诉回收器视图隐藏自己:

mRecyclerView.setVisibility(getItemCount() != 0 ? View.VISIBLE : View.GONE);

【讨论】:

重点是如果我检查Adapter类之外的元素个数(比如在我的RecyclerView被定义和使用的类中),总是会导致没有元素... @PCNF 这是预期的行为,因为数据是从 Firebase 异步加载的。为了得到项目的数量,你需要register an observer。除此之外,您还可以使用onChanged() 方法来达到同样的目的。 @AlexMamo 正如我已经说过的,正如您在链接到我的答案中所说的那样,我覆盖了适配器类中的 onDataChanged 方法(您在图片中看到的那个)。感谢您看到的代码,我可以实时正确地获取包含的元素数量。但是如何使用该方法隐藏主要活动中存在的 RecyclerView? @PCNF 只需 registering an observer。如果您不想使用此解决方案,可以创建自己的回调。 @AlexMamo 试图在该答案中实现相同的代码。它从未被触发...

以上是关于如果为空,如何隐藏 Firestore RecyclerView的主要内容,如果未能解决你的问题,请参考以下文章

如果数据为空,如何隐藏字符串格式

如果底层 DataContext 为空,如何隐藏控件?

如果输入为空,如何隐藏文本区域

如果嵌入的内容为空,如何隐藏元素?

如果产品描述为空,WooCommerce 如何隐藏“描述”选项卡

在 Cloud Firestore 规则中 - 如何检查密钥是不是为空