最近的程序有这么一个需求,整个列表中,当用户点击某个Item时,只刷新这个Item,这样可以减少资源的损耗,加快刷新速度。在实现过程中public View getChildAt(int index)传入的是整形index,没有翻屏的情况下使用List的position可以正常刷新,翻屏后点击通过getChildAt得到的是null
public View getChildAt(int index) {
if (index < 0 || index >= mChildrenCount) {
return null;
}
return mChildren[index];
}
其中mChildrenCount可以通过getChildCount()得到
public int getChildCount() {
return mChildrenCount;
}
通过验证getChildCount()得到的值和
int start = listView.getFirstVisiblePosition(); //第一个可见的Item在List中的position
int last = listView.getLastVisiblePosition(); //最后一个可见的Item在List中的position
(last - start) == getChildCount()两者的值是相等的,说明getChildCount()得到的值就是屏幕最多可以显示的Item,这是因为ListView和GridView是采用回收机制,减少对内存
的使用
要想刷新