我在一个GridView中放了10行数据,由于屏幕大小的关系会产生滚动,我设置了点击GridView中的子项(子项是TextView),就改变这个TextView的字体颜色。
到这里都没有问题,假如我点击第一行中的某些数据(假如说是第一项和第三项),被点击的项字体颜色确实改变了,但是如果我往下滚动GridView,再回到上面的时候,奇异的事情发生了,原来点击过的项字体恢复到没点的情况,而不该变色的项字体变色了,而且这种现象还是随机的,请问有人碰到过这样的情况吗?或者有人知道怎么解决这个问题吗?
有答案马上结贴,在线等,谢谢了!
到这里都没有问题,假如我点击第一行中的某些数据(假如说是第一项和第三项),被点击的项字体颜色确实改变了,但是如果我往下滚动GridView,再回到上面的时候,奇异的事情发生了,原来点击过的项字体恢复到没点的情况,而不该变色的项字体变色了,而且这种现象还是随机的,请问有人碰到过这样的情况吗?或者有人知道怎么解决这个问题吗?
有答案马上结贴,在线等,谢谢了!
public int getItemViewType(int position) {
return channels.get(position).isSection ? TYPE_SECTION : TYPE_CHANNEL;
} @Override
public int getViewTypeCount() {
return VIEW_TYPE_COUNT;
}这样做的目的是告诉GridView你有两种ViewType,方便GridView缓存的时候区分这两种。
这里面的channels, TYPE_SECTION 和 TYPE_CHANNEL分别是什么呀?
谢谢了!
GridView加载一个list的时候,假设这个List有100项,但每个屏幕只能显示12项,当GridView加载一个适配器的时候,适配器在getView加载要显示的Viwe,虽然List有100项,但显示的区域只有12项,所以GridViwe不管绑定多少数据 但它有的View项只有12项,当你滑动屏幕的时候,只是把这12个已有的View的数据更改了而已,所以当你滑动窗口前更改的数据没有改变到list中时,当再次滑回原处就会出现颜色不愿成原来的样子。而LZ所说的偶有偶无 应该就是缓存的问题在在
GridView加载一个list的时候,假设这个List有100项,但每个屏幕只能显示12项,当GridView加载一个适配器的时候,适配器在 getView加载要显示的Viwe,虽然List有100项,但显示的区域只有12项,所以GridViwe不管绑定多少数据 但它有的View项只有12项,当你滑动屏幕的时候,只是把这12个已有的View的数据更改了而已,所以当你滑动窗口前更改的数据没有改变到list中时,当再次滑回原处就会出现颜色不愿成原来的样子。而LZ所说的偶有偶无 应该就是缓存的问题在在 两位回答的已经够好的了。。
这里面的channels, TYPE_SECTION 和 TYPE_CHANNEL分别是什么?
能给个全的代码吗。
谢谢了!
public int getItemViewType(int position) {
return channels.get(position).isSection ? TYPE_SECTION : TYPE_CHANNEL;
}@Override
public int getViewTypeCount() {
return VIEW_TYPE_COUNT;
}
这里面channels.get(position).isSection ? TYPE_SECTION : TYPE_CHANNEL;
这里面的channels, TYPE_SECTION 和 TYPE_CHANNEL分别是什么?
还有哪位好心人能给个全的代码吗。
谢谢了!
困惑了好久了