2020/03/31 [Android]RecyclerView と Paging を組み合わせサンプルと解説 No8
class ItemRecyclerAdapter() : PagedListAdapter<Item, ItemHolder>(diffCallback) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ItemHolder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.recycler_view_item, parent, false) as View
return ItemHolder(view)
}
override fun onBindViewHolder(holder: ItemHolder, position: Int) {
holder.title.text = getItem(position)?.title
}
companion object {
private val diffCallback = object : DiffUtil.ItemCallback<Item>() {
override fun areItemsTheSame(oldItem: Item, newItem: Item) =
oldItem.id == newItem.id // check uniqueness
override fun areContentsTheSame(oldItem: Item, newItem: Item) =
oldItem == newItem // check contents
}
}
}
class ItemHolder(private val view: View) : RecyclerView.ViewHolder(view) {
val title = view.title
}