您的位置:首页 > 其它

ListView 局部刷新备忘

2016-02-04 15:46 197 查看

一、分析

listview 如果实现点赞功能,每次点赞后都调用adapter.notifyDataSetChanged();刷新,会造成只需要改变一个View,但是却调用getView多次的情况,会对性能造成些影响。所以我们需要一个方法对其进行优化。


二、优化

private void updateView(int itemIndex) {

//得到当前页面第一个Item的位置

int visiblePosition = listview.getFirstVisiblePosition();

//确保所需要更新的页面在显示区域

if (itemIndex - visiblePosition >= 0) {

//得到要更新的item的view

View view = listview.getChildAt(itemIndex - visiblePosition);

//调用adapter里面的方法更新界面

adapter.updateView(view, itemIndex);

}

}

adapter里面

public void updateView(View view, int itemIndex) {

//保护

if (view == null) {

return;

}

//从view中取得holder

ViewHolder holder = (ViewHolder) view.getTag();

holder.tv.setText(models.get(itemIndex).num + “”);

}

这样就可以实现ListView局部刷新的作用。

demo地址
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listview 优化 性能