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 }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。