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://hxwzsj.com/article/psdidc.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 响应式网站建设 重庆手机网站建设 成都网站建设 企业网站设计 成都网站建设公司 手机网站建设 定制级高端网站建设 高端网站设计 成都网站建设公司 网站建设改版 网站建设 成都网站建设 四川成都网站设计 阿坝网站设计 成都网站制作 网站建设方案 成都网站设计 成都网站设计 网站制作 定制网站设计 成都网站建设 重庆企业网站建设