公式ドキュメントで使用されている用語を理解できません。具体的には、メソッドonViewRecycled
、onDetachedFromRecyclerView
、onViewDetachedFromWindow
があります。これら3つの違いは何ですか?
署名にも大きな違いがあります。
onDetachedFromRecyclerView(RecyclerView recyclerView)
-このアダプタの監視を停止すると、RecyclerViewによって呼び出されます。
気づかなかったかもしれませんが、このメソッドの前に常に呼び出されるマッチングメソッドがあります。
onAttachedToRecyclerView(RecyclerView recyclerView)
-このアダプタの監視を開始すると、RecyclerViewによって呼び出されます。
recyclerView.setAdapter(adapter)
を呼び出すと、adapter
はonAttachedToRecyclerView(recyclerView)
の呼び出しを受け取ります。次に、recyclerView.setAdapter()
を呼び出すと、adapter
s onDetachedFromRecyclerView(recyclerView)
がトリガーされます。
いくつかの特別な状況(観測されたrecyclerView
sのカウントを維持するなど)を除いて、通常はこのメソッドをオーバーライドする必要はありません。
onViewRecycled(VH holder)
ははるかに単純です。viewHolder
をrecycleViewPool
に送信する前に呼び出されます。
onBindViewHolder(VH holder, int position)
の「クリーンアップ」メソッドと考えることができます。
onViewDetachedFromWindow(VH holder)
は常に、対応するonViewAttachedToWindow(VH holder)
の後に続きます。これは、viewholderが表示または非表示になる(アタッチ/デタッチコール)正確な瞬間に呼び出されます。
viewHolder
がデタッチされたが、まだリサイクルされていない場合、onBindViewHolder
を使用してデータを再バインドする必要なく、onViewAttachedToWindow(ViewHolder)
呼び出しを再度受け取ることができます。