ListView懒加载

来源:互联网 发布:lol网络波动也被裁决 编辑:程序博客网 时间:2024/05/17 08:50

预加载也就是在我将要使用的时候进行加载,也就是提前读。
懒加载就是我在什么时候使用什么时候加载。

当我们的item的布局如果不是很复杂可能感觉不到卡顿等,如果item的getView方法做了很多复杂操作,比如Glide请求数据,更改text,可见度等,滑动的时候还在做这些工作就会特别卡。

思路:
我们可以设置一个速度的阈值,当小于该速度或者ListView静止时就开始加载。

 @Override    public void onScrollStateChanged(AbsListView view, int scrollState) {        isScrolling = scrollState != SCROLL_STATE_IDLE;        if (isScrolling == false){            notifyDataSetChanged();        }    }    @Override    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {        if (previousFirstVisibleItem != firstVisibleItem) {            long currTime = System.currentTimeMillis();            long timeToScrollOneElement = currTime - previousEventTime;            speed = ((double) 1 / timeToScrollOneElement) * 1000;            previousFirstVisibleItem = firstVisibleItem;            previousEventTime = currTime;            if (speed < 10) {                isSmoothScrolling = true;            }else {                isSmoothScrolling  = false;}    }
原创粉丝点击