当前位置: 首页 > 编程笔记 >

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

通建安
2023-03-14
本文向大家介绍RecyclerView索引溢出异常的解决方法,包括了RecyclerView索引溢出异常的解决方法的使用技巧和注意事项,需要的朋友参考一下

使用RecyclerView过程中遇到异常:

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<RecyclerView>(R.id.recycler_view).apply {
  layoutManager = manager
  adapter = recyclerAdapter
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍Java数组索引异常产生及解决方案,包括了Java数组索引异常产生及解决方案的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java数组索引异常产生及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 通过索引查询数组值 很容易知道,数组array的元素个数是4个,不过索引值是从0开始的,所以最大索引是3。 其中,g

  • 本文向大家介绍解决golang内存溢出的方法,包括了解决golang内存溢出的方法的使用技巧和注意事项,需要的朋友参考一下 最近在项目中出现golang内存溢出的问题,master刚开始运行时只有10多M,运行几天后,竟然达到了10多个G。而且到凌晨流量变少内存也没有明显降低,内存状态呈现一种很不健康的曲线。 像这种情况肯定是golang内存溢出了,为此我持续排查了两天,终于找到问题所在,特此记录

  • 问题内容: 当整数溢出发生而不是静默失败时,是否可能引发某种运行时异常。例如 由于溢出而打印,我想得到某种运行时异常 问题答案: 是的,从Java-8开始,您可以使用新的Exact方法,它将在溢出时引发异常(java.lang.ArithmeticException:整数溢出)。例如

  • 本文向大家介绍SQL Server出现System.OutOfMemoryException异常的解决方法,包括了SQL Server出现System.OutOfMemoryException异常的解决方法的使用技巧和注意事项,需要的朋友参考一下 今天在用SQL Server 2008执行一个SQL脚本文件时,老是出现引发类型为“System.OutOfMemoryException”的异常错误,

  • 本文向大家介绍java.net.MalformedURLException异常的解决方法,包括了java.net.MalformedURLException异常的解决方法的使用技巧和注意事项,需要的朋友参考一下 代码中URL url = new URL(someUrl);这一行出现java.net.MalformedURLException异常 解决方法是,对someUrl中的参数名和参数值都UR

  • 问题内容: 我的Flutter(Dart)RenderFlex像素溢出了。 渲染库的例外。 如何管理或应用滚动功能到我的应用页面视图,并避免Flutter出现诸如以下消息的渲染异常: RenderFlex在底部溢出了28个像素。 如果您有任何需要完整的日志来帮助我的信息,请在这里: 在热重装时,它会根据消息在底部显示黄色/黑色条纹。 我可以使用可滚动的小部件来管理吗?或者我可以声明其他方式来控制它