在列表视图中制作视图不可见的android

Posted

技术标签:

【中文标题】在列表视图中制作视图不可见的android【英文标题】:Making a view in a listview invisible android 【发布时间】:2010-07-20 01:17:03 【问题描述】:

我有一个使用自定义适配器的ListView。我想从ListView 动态添加/删除项目。我已经在我的视图适配器中尝试了 getView() 方法中的所有内容。我已经尝试在我返回的视图上做setVisiblity(View.GONE)。而且它实际上并没有绘制视图,但它仍然为视图分配空间,它只是一个空白的黑色空间。

这甚至可以在ListView 中设置项目不可见吗?

【问题讨论】:

您能说明一下您是如何将项目设置为 GONE 的吗? 如果将返回视图设置为 GONE,则不应分配 ListView 中的空间。 我同意它不应该分配空间,但它确实...... 【参考方案1】:

如果您想从 ListView 中删除项目,我会更改关联的 ListAdapter 返回的值,而不是尝试操纵视图。

【讨论】:

是的,与其弄乱可见性,不如将它们完全删除。 我最终创建了 2 个 arrayLists 并且只是来回穿梭我的项目(一个完整列表和一个显示列表)【参考方案2】:

您需要在返回的视图和其中的所有视图上调用 setVisiblity(View.GONE)。如果你正在重用传入的转换视图,你需要记住在所有你想要可见的视图上调用 setVisiblity(View.VISIBLE)。

如果您有很多不可见的视图,您可能需要将分隔线高度设置为 0,并将您自己的分隔线添加到返回的视图中。否则,“不可见”视图将每个都有一个可见的分隔线,并在可见视图之间产生一条明显的灰线。

【讨论】:

以上是关于在列表视图中制作视图不可见的android的主要内容,如果未能解决你的问题,请参考以下文章

为啥 xamarin 表单列表视图中的组标题在发布模式下不可见?

如何在列表视图索引中切换子元素的可见性?

自定义滚动谷歌颤动中的水平列表视图

如何检查视图是不是可见(android listview)

列表视图edittext数据在Android中滚动时丢失

表视图不可见