1. 程式人生 > >android recyclerview 上下滑動導致點選事件和資料錯亂問題解決

android recyclerview 上下滑動導致點選事件和資料錯亂問題解決

今天遇到一個奇怪的Bug  上下滑動Item時候 再往上滑 撥打電話 與剛開始不一致,網上很多人說setTag種種,但並沒有什麼卵用,很鄙視那些複製貼上的

兩種解決方案

getItemViewType(int position){return position} // 這樣多種佈局應該不方便

在onBidViewHoudle中,新增點選事件的position 不要中onBidViewHoudler的position

用 houdler.getLayoutPosition();

解釋

 

/**
 * Returns the position of the ViewHolder in terms of the latest layout pass.
 * <p>
 * This position is mostly used by RecyclerView components to be consistent while
 * RecyclerView lazily processes adapter updates.
 * <p>
 * For performance and animation reasons, RecyclerView batches all adapter updates until the
 * next layout pass. This may cause mismatches between the Adapter position of the item and
 * the position it had in the latest layout calculations.
 * <p>
 * LayoutManagers should always call this method while doing calculations based on item
 * positions. All methods in {@link RecyclerView.LayoutManager}, {@link RecyclerView.State},
 * {@link RecyclerView.Recycler} that receive a position expect it to be the layout position
 * of the item.

 

大致意思就是涉及增刪查改的話,onBidViewHoudler 的 pos不太準確,使用這個方法獲取最新位置

有問題請諮詢QQ 643200732 一起交流學習。 Q群 : 535807500