記録

主にAndroidアプリ開発に関する知見やその周辺に関わることについて記事をかいています

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)
    }
…