課題
これまでButterKnifeを使ってFragment及びViewHolderのView操作を記述してきたが、ViewBinding登場に伴いButterKnifeはdeprecatedになった。 ViewHolderをViewBindingを使って書き換えたいが、どうすればよいか。
対応
user.xmlとかいうユーザー一覧のアイテムを表すlayout.xmlがあったとする。
class UsersAdapter(val context: Context, val items: ArrayList<*>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { when (viewType) { TYPE_USER -> return UserViewHolder ( UserBinding.inflate(inflater, parent, false) ) } } inner class UserViewHolder(val binding: UserBinding) : RecyclerView.ViewHolder(binding.root) }
bindingがViewの情報を全部持ってるのでViewHolderがほとんど不要になってる。 めっちゃ楽になりましたわ。