Recyclerview常见问题

1.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 报错原因:

recyclerview下,请求完新的数据后没有及时更新数据源,或者是修改了数据源没有及时刷新,比如移除了一条,notifyItemRemoved,

或者是两个具有一样的recyclerview的tablayout下切换时候,请求数据频繁加载和刷新两个layout下的列表
复制代码

解决方法:

recyclerview.notifyDataSetChanged(); 
或者直接clear后再添加数据到数组
复制代码

2.Recyclerview的缓存机制:

public View getViewForPosition(int position) {
    return getViewForPosition(position, false);
}

View getViewForPosition(int position, boolean dryRun) {
    return tryGetViewHolderForPositionByDeadline(position, dryRun, FOREVER_NS).itemView;
}
复制代码

这个方法是复用机制的入口,也就是 Recycler 开放给外部使用复用机制的api,外部调用这个方法就可以返回想要的 View,而至于这个 View 是复用而来的,还是重新创建得来的,就都由 Recycler 内部实现,对外隐藏。

转载于:https://juejin.im/post/5d12e478518825329640363f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值