天天看点

ListView局部更新

  好几天没有写博了,前几天一直在忙毕业答辩,之后还回家了一趟,一直没有写。

  今天实习时候,使用listview的adapter.notifyDataSetChanged(),方法刷新数据时候发现会发生界面闪烁的问题。后来知道了可以在adapter写一个updateView方法来实现一个item的局部更新,不像notifyDataSetChanged方法把全部数据刷新一遍。调用的时候只要调用adapter.updateView(position)就可以了。

  

public void updateView(int itemIndex) {
        int firstVisible = listview.getFirstVisiblePosition();
        int lastVisible = listview.getLastVisiblePosition();
        if (itemIndex >= firstVisible && itemIndex <= lastVisible) {
            ViewHolder holder = (ViewHolder) (listview.getChildAt(itemIndex - firstVisible).getTag());
            //具体更新操作

        }
    }
           

效果看起来差不多哈

ListView局部更新

继续阅读