【问题标题】:gridview of images is not getting refreshed图像的网格视图未刷新
【发布时间】:2011-01-12 09:04:09
【问题描述】:

我有一个网格视图,其中包含从列表中填充的图像。当我从列表中删除图像时,我希望刷新网格视图。有人可以告诉我该怎么做。

我试图使gridview无效(),通知图像适配器数据集已更改(adapter.notifyDataSetChanged();)。但这并没有给出预期的结果。

在这样做之后,我在之前删除的图像的位置得到了一个空白。

【问题讨论】:

    标签: android gridview android-layout invalidation android-gridview


    【解决方案1】:

    尝试使用 gridView.invalidateViews() 而不仅仅是 .invalidate()。它会在 gridView 中重绘所有视图(在您的情况下为 ImageViews)。

    【讨论】:

    • 我需要从gridview重绘一个网格怎么做尝试了getChildAt,没有运气
    • 你的意思是你需要从你的gridview重绘一个视图(不是一个网格),对吧?
    • 我发现 invalidate() 可以正确重绘 API 级别 9 的子视图,但不适用于 API 级别 14。另一方面,invalidateViews() 适用于 API 级别 14,但适用于 API 级别 9导致子视图无法接收 onClick() 事件 - API 级别 14 不会出现此问题。
    【解决方案2】:

    您是否使用 ListAdapter 来填充您的视图?当你的列表发生变化时,也许你应该重新创建一个新的适配器。

    【讨论】:

    • 我正在使用扩展基本适配器的自定义适配器
    • 是的,使用新适配器重新创建是我发现的唯一可行的解​​决方案。虽然想知道有没有其他办法。
    • 这是有问题的;不要每次都创建一个新的适配器!正如丹尼斯所说,使用 invalidateViews() ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 2013-05-12
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多