您好,登錄后才能下訂單哦!
使用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() } } }
調(diào)用時使用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 }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。