【问题标题】:How do I hide or show adapters/views using cwac-merge?如何使用 cwac-merge 隐藏或显示适配器/视图?
【发布时间】:2012-12-09 19:15:52
【问题描述】:

我有一个包含几个列表的片段,你可能会猜到滚动是一团糟,所以我尝试使用 cwac-merge 适配器,它似乎做得很好,但我想自定义一些项目,即我需要一些适配器来显示或隐藏,具体取决于它们有多少项目,现在空列表适配器显示一个空白区域,我想让它们消失,直到检索到项目。

在屏幕截图上(请原谅它的模糊,但我还不允许展示产品)你可以看到我用红色矩形突出显示了空白区域,我将视图设置为 Visibility = GONE。

这些空白之一也是由于适配器没有项目而引起的。

有没有办法隐藏或显示 MergeAdapter 中的某些适配器或视图,以免占用空间?

谢谢

【问题讨论】:

  • 嗨!欢迎来到 StackOverflow! StackOverflow 是用于编程问题的,而您还没有问过问题。您也没有代码、没有布局、没有说明“空白空间”的屏幕截图等。因此,可能没有人能够帮助您。
  • @CommonsWare 抱歉,现在好些了吗?

标签: android android-adapter commonsware-cwac


【解决方案1】:

我将视图设置为 Visibility = GONE

IIRC,在 ListView 中有 GONE 行通常是有问题的。 MergeAdapter 应该不会对其产生影响。

这些空白之一也是由于适配器没有项目而引起的。

我对此表示怀疑。层次结构视图应该向您展示真正发生的事情。

有没有办法隐藏或显示 MergeAdapter 中的某些适配器或视图,以免占用空间?

如果您在MergeAdapter 上调用notifyDataSetChanged(),则从getCount() 返回0 的适配器应该不占用空间,以便它可以告诉ListView 重绘自己。

【讨论】:

  • 所以没有办法隐藏已添加到 MergeAdapter 的视图?
  • @AldoReyes:我不知道。我从未尝试过,而且我怀疑这首先是一个好主意。如果您的ListView 的结构发生了如此巨大的变化,请按照您想要的方式设置一个新的适配器。或者,切换到ExpandableListView(并为它制作一个合适的适配器),因为ExpandableListView 具有隐藏和显示其内容部分的内置概念。
  • 谢谢你,伙计,我决定回去有几个列表视图,并根据项目的数量设置高度,我知道这不是最好的,但这些列表不会增长到超过 5 个项目每个。我会将你标记为正确答案,因为它引导我做出这个选择。
猜你喜欢
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-29
  • 2019-01-21
  • 1970-01-01
相关资源
最近更新 更多