当前位置: 代码迷 >> Android >> gridview里用setBackgroundColor改变了子项颜色,滚动后为什么就错乱了。解决思路
  详细解决方案

gridview里用setBackgroundColor改变了子项颜色,滚动后为什么就错乱了。解决思路

热度:12   发布时间:2016-04-28 03:19:43.0
gridview里用setBackgroundColor改变了子项颜色,滚动后为什么就错乱了。
在activity里定义onWindowFocusChanged
public void onWindowFocusChanged(boolean hasFocus){
for (int i=0;i<=20;i++)
{
if (gvTable.getChildAt(i)!=null)
{
gvTable.getChildAt(i).setBackgroundColor(Color.YELLOW);

}

}
super.onWindowFocusChanged(hasFocus);


目的是想在activity的gridview中,将不同的item标记成不同颜色,但如果item在gridview可视范围内,则设置颜色都是正确的,但如果gridview来回滚动后,设置的颜色就错乱了。
------解决思路----------------------
if (gvTable.getChildAt(i)!=null)在这里能判断是不是你要的目标吗
------解决思路----------------------
为什么不在Adapter的getView中写呢,超出屏幕后,隐藏的item会被复用进入getView中

如果想实现相间颜色,你在getView中计算position区分奇偶行显示
  相关解决方案