GridView项目的标签仅在可见时才应用?

时间:2012-12-24 08:46:51

标签: java android gridview

我有一个可滚动的GridView:只有在向下滚动GridView之后才会显示一些项目。我们可以看到其他项目。问题是,我正在为GridView中的所有项设置标签,但是通过跟踪LogCat,我发现它不接受为GridView中的不可见项设置标签(我的意思是在网格内部,但当时不在屏幕上)

滚动前:

Starting Screen

滚动后

After scrolling

仅在向下滚动其他项目后才会应用标记。

如何为网格中的所有项目设置标记,即使它们在屏幕上或屏幕外?

2 个答案:

答案 0 :(得分:0)

您的问题是您在getView方法中设置了标记,并且只有在需要显示视图时框架才会调用此方法。

不确切地知道你需要对view标签做什么,但我认为不是试图从非显示的视图中获取数据,而是必须从ImageAdapter(ia.imageid[])获取数据。

修改

回答你的问题:

  

如何为网格中的所有项目设置标记,即使它们在屏幕上或屏幕外?

如果视图在不显示时并不总是存在:您无法执行此操作。

我建议您解释为什么需要这些标签...可能您可以使用替代解决方案而不是视图标签来满足您的最终需求。

无论如何,如果您确实需要在视图上显示尚未显示的标记:

  1. onCreate方法中初始化视图数组。
  2. 使用您的所有视图填充此数组(并设置标记)
  3. 修改适配器的getView方法,从视图数组中返回视图,而不是创建视图。
  4. 请注意,我不建议使用此解决方案,因为它会占用更多资源。

答案 1 :(得分:0)

最后我自己得到了我的问题的解决方案。感谢所有提出宝贵建议的人。 谢谢@ ben75

  

我检查了当前点击项目的位置然后应用了标签,因此如果用户想要选择目前不在焦点上的项目,他必须滚动网格,然后必须选择项目然后只选择标签将适用。