ListView懒加载

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

当我们的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;
}
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值