androidx.recyclerview:recyclerview:1.2.0からConcatAdapterが導入された
https://developer.android.com/jetpack/androidx/releases/recyclerview?hl=ja
今回試しに使ってみた
・RecyclerViewの今までとこれから
RecyclerViewの中で違うレイアウトを混ぜて表示したいときはgetItemViewType使って出し分けしてた
https://firespeed.org/diary.php?diary=kenz-1899
ヘッダーとフッターのような場合については、ConcatAdapaterが使えるようになった
このQiitaが分かりやすいので写経するならこれが良いと思う
https://qiita.com/kaleidot725/items/0729605ffda249071bb7
・ListAdapter
今まではRecyclerView.Adapterを使ってたけど
ListAdapterというAdapterもある。
こちらはRecyclerView.Adapterを継承してる
DIFF_UTILを渡して差分更新がしやすそうだし、listの更新はsubmitListだけだなので楽勝な予感
https://developer.android.com/reference/androidx/recyclerview/widget/ListAdapter
submitList(List<T> list) //Submits a new list to be diffed, and displayed.
非同期でデータ更新してみたら自動で反映された
dispatch叩かなくて良いんだね
GlobalScope.launch { delay(2000L) categoryAdapter.submitList(listOf(Category("人名1"))) }
・viewBinding
databindingばっかり使ってったけどviewBindingってのもあるんだね
https://qiita.com/mi_iroha/items/dbc07737e81776e05f8d
android { viewBinding { enabled = true } }
こうして新しいConcatAdapterを使えましたとさ