我有一个可滚动的GridView:只有在向下滚动GridView之后才会显示一些项目。我们可以看到其他项目。问题是,我正在为GridView中的所有项设置标签,但是通过跟踪LogCat,我发现它不接受为GridView中的不可见项设置标签(我的意思是在网格内部,但当时不在屏幕上)
滚动前:
滚动后
:
仅在向下滚动其他项目后才会应用标记。
如何为网格中的所有项目设置标记,即使它们在屏幕上或屏幕外?
答案 0 :(得分:0)
您的问题是您在getView
方法中设置了标记,并且只有在需要显示视图时框架才会调用此方法。
不确切地知道你需要对view标签做什么,但我认为不是试图从非显示的视图中获取数据,而是必须从ImageAdapter(ia.imageid[]
)获取数据。
修改强>
回答你的问题:
如何为网格中的所有项目设置标记,即使它们在屏幕上或屏幕外?
如果视图在不显示时并不总是存在:您无法执行此操作。
我建议您解释为什么需要这些标签...可能您可以使用替代解决方案而不是视图标签来满足您的最终需求。
无论如何,如果您确实需要在视图上显示尚未显示的标记:
onCreate
方法中初始化视图数组。 getView
方法,从视图数组中返回视图,而不是创建视图。请注意,我不建议使用此解决方案,因为它会占用更多资源。
答案 1 :(得分:0)
最后我自己得到了我的问题的解决方案。感谢所有提出宝贵建议的人。 谢谢@ ben75
我检查了当前点击项目的位置然后应用了标签,因此如果用户想要选择目前不在焦点上的项目,他必须滚动网格,然后必须选择项目然后只选择标签将适用。