【问题标题】:Flag skipped cells GridView标记跳过的单元格 GridView
【发布时间】:2014-11-16 20:38:20
【问题描述】:

是否有可能标记跳过的单元格,以便方法 getView(BaseAdapter) 中的位置不再计算它们。因为跳过单元格而不将它们标记为已跳过或“空”可能会导致 NPE 提供您的有效负载(例如来自 Drawable-Array... 搜索堆栈并找到一个他想跳到下一个源的示例...我不想那样。

查看链接 Android gridview skip cell

更新:

这会让你完全清楚:)

问题是,我可以缩放图像..所以这意味着..关于屏幕宽度,一行中只有指定数量的图像。希望大家多多支持:)

【问题讨论】:

    标签: android android-gridview baseadapter


    【解决方案1】:

    如果我对您的理解正确,您是在问是否有一种方法可以简单地忽略传递给 GridView 的适配器的某些项目?不,那里没有。您必须从适配器中删除您希望跳过的项目。否则,您可以按照该链接的建议执行操作,只需为要跳过的任何项目绘制一个空白区域。

    更新

    嗯,当我把我的想法写在纸上时,它并没有成功。最终的解决方案不仅需要在适配器端进行大量定制,还需要在小部件端进行大量定制。您需要(以及我正在尝试做的)是一种通过其订购类型来组织图像的方法。所以你会有一个以“a”开头的图像列表。还有另一个以“b”开头的图像列表。然后使用排序类型的Map 来查找这些列表。问题是普通的ListAdapter 不适合这种设置。什么是ExpandableListAdapter。如果支持GridView,您的问题可以通过ExpandableListView 轻松解决

    我发现了这个post,其中创建了自定义 ExpandableGridView 的代码。发布问题的人正在寻找类似问题的解决方案。我建议您尝试一下,看看它是否适合您。

    还有这个开源库,好像很受关注:ExpandableGridView

    【讨论】:

    • 是的,我已经完成了...更多尝试,但在我看来,这完全破坏了 gridview 的性能..因为我需要很多 if 语句..也许我是没有完全使用 BaseAdapter 的空洞功能以更高的性能方式实现我的想法......如果你知道如何实现最好的方式......请随意放置一些很棒的代码或建议......我的目标是按字母顺序对图像进行排序。所以它必须是动态的,因为如果用户添加另一个带有新标签的图像,图像的数量可能会发生变化......谢谢@Jay Soyer
    • 图像的数量随时变化...如果到达下一个字母..例如查看所有带有 startLetter A 的图像我需要跳到下一行(用空填充当前行项目)并在那里添加下一个带有 startletter B 的图像..等等..也许你得到了一些东西..我会很感激@Jay Soyer
    • 我想我明白你在说什么。基本上,您只希望行包含所有一种排序类型。因此,所有以 A 开头的图像只会与以 A 开头的其他图像在行上。遇到以 B 开头的图像时,应该开始新行。此外,图像列表会不断变化吗?
    • 是的,正确! :) 我已经更新了我的问题,以便为您提供更好的概述
    • 明白了。最后的问题,你会一直按照标签文本中的第一个字母排序吗?还是您遵循不同的排序逻辑?我想我有一个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多