RecyclerView索引溢出 RecyclerView索引溢出异常的解决办法
phantomvk 人气:0想了解RecyclerView索引溢出异常的解决办法的相关内容吗,phantomvk在本文为您仔细讲解RecyclerView索引溢出的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点: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 }
加载全部内容