问题引入:
demo中需做个下载个下载管理界面。同时只能下载一个任务,但是下载队列可以有多个下载任务。
当更新当前正在下载的任务的时候,使用 notifyDataSetChanged();方法会使整个页面都会刷新。
而且进度更新比较频繁,这就造成了内存的消耗和页面卡顿(在进度更新很频繁的情况),笔者甚至出现了卡住页面无法进行操作的情况。
所以想到了能不能局部刷新某个Item。也查了下资料,问题解决。
解决思路:
通过listview.getFirstVisiblePosition()方法获取到显示的item的首个位置 ,再根据position, 计算出view的位置。获取到具体的view后,对view进行操作,就能够实现局部刷新了。
关键代码:
- public void updateView(int itemIndex) {