GroupieでViewBindingを簡単に利用する
GroupieのViewHolderから itemView
でViewが使えるので、これを利用して ViewBinding.bind(viewHolder.itemView)
をしてあげるだけで良い。かなり簡略的だが、実際は次のように使う。
class HogeItem : Item<ViewHolder>() { override fun getLayout(): Int = R.layout.item_hoge override fun bind(viewHolder: ViewHolder, position: Int) { val binding = ItemHogeBinding.bind(viewHolder.itemView) binding.textView.text = "Hello world!" } }
また、createViewHolder
であらかじめ設定したい場合は、ここでも ViewBinding.bind(itemView)
してあげれば良い。
class HogeItem : Item<ViewHolder>() { override fun getLayout(): Int = R.layout.item_hoge override fun createViewHolder(itemView: View): ViewHolder { val binding = ItemHogeBinding.bind(itemView) binding.textView.visibility = View.VISIBLE return super.createViewHolder(binding.root) } …