0

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

滚动前:

开始画面

滚动后:

滚动后

只有在向下滚动其他项目之后才会应用标签。

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

4

2 回答 2

0

您的问题是您在方法中设置了 TaggetView并且该方法仅在需要显示视图时由框架调用。

不知道您需要对视图标签做什么,但我认为与其尝试从未显示的视图中获取数据,不如从 ImageAdapter ( ia.imageid[]) 中获取数据。

编辑:

要更准确地回答您的问题:

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

只要视图在不显示时并不总是存在:你不能这样做。

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

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

  1. onCreate在方法中初始化一个视图数组。
  2. 使用您的所有视图填充此数组(并设置标签)
  3. 修改getView适配器的方法以从视图数组返回视图,而不是创建视图。

请注意,我不推荐此解决方案,因为它会消耗更多资源。

于 2012-12-24T11:30:54.303 回答
0

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

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

于 2012-12-24T13:48:48.420 回答