RecyclerView索引溢出异常的解决方法

使用RecyclerView过程中遇到异常:

创新互联主要从事成都网站设计、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务山亭,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder

继承并重写LinearLayoutManager.onLayoutChildren()方法

class WrappedLinearLayoutManager : LinearLayoutManager {

  constructor(context: Context) : super(context)

  constructor(context: Context, orientation: Int, reverseLayout: Boolean) : super(context, orientation, reverseLayout)

  constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)

  override fun onLayoutChildren(recycler: RecyclerView.Recycler?, state: RecyclerView.State) {
    try {
      super.onLayoutChildren(recycler, state)
    } catch (e: IndexOutOfBoundsException) {
      e.printStackTrace()
    }
  }
}

调用时使用WrappedLinearLayoutManager代替LinearLayoutManager

val recyclerAdapter = RecyclerViewAdapter(activity)
val manager = WrapContentLinearLayoutManager(context).apply { orientation = LinearLayoutManager.VERTICAL }

val recyclerView = view.findViewById(R.id.recycler_view).apply {
  layoutManager = manager
  adapter = recyclerAdapter
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


分享名称:RecyclerView索引溢出异常的解决方法
链接地址:http://bzwzjz.com/article/psdidc.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 专业网站设计 营销型网站建设 网站建设推广 成都网站建设 重庆企业网站建设 成都响应式网站建设 网站设计 盐亭网站设计 手机网站建设 成都网站建设 定制网站建设多少钱 网站设计 高端品牌网站建设 成都网站设计公司 成都品牌网站设计 高端网站设计推广 成都定制网站建设 定制级高端网站建设 成都网站建设公司 外贸营销网站建设 手机网站制作 成都模版网站建设