RecyclerView索引溢出异常的解决方法
使用RecyclerView过程中遇到异常:
java.lang.IndexOutOfBoundsException:Inconsistencydetected.InvalidviewholderadapterpositionViewHolder
继承并重写LinearLayoutManager.onLayoutChildren()方法
classWrappedLinearLayoutManager: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)
overridefunonLayoutChildren(recycler:RecyclerView.Recycler?,state:RecyclerView.State){
try{
super.onLayoutChildren(recycler,state)
}catch(e:IndexOutOfBoundsException){
e.printStackTrace()
}
}
}
调用时使用WrappedLinearLayoutManager代替LinearLayoutManager
valrecyclerAdapter=RecyclerViewAdapter(activity)
valmanager=WrapContentLinearLayoutManager(context).apply{orientation=LinearLayoutManager.VERTICAL}
valrecyclerView=view.findViewById(R.id.recycler_view).apply{
layoutManager=manager
adapter=recyclerAdapter
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。