[Android] RecyclerViewのViewHolderでLayoutContainerを実装する

RecyclerViewのViewHolderでLayoutContainerを実装することで、Viewのキャッシュが効いてパフォーマンスが改善する可能性があります。

LayoutContainer を実装したクラスであれば、Android Kotlin Extensionsが生成するプロパティをキャッシュつきで利用することができます。これは特に、RecyclerView.ViewHolder を実装するときに役にたちます。(もうちょっと詳しくなるKotlin Android ExtensionsでのView Binding – Qiita

LayoutContainerを使うには、androidExtensionsのexperimentalを有効にします。

android {
    androidExtensions {
        experimental = true
    }
}

まずはbeforeですが、こんな感じのVIewHolderにLayoutContainerを実装していきます。

class RecyclerViewHolder(view: View): RecyclerView.ViewHolder(view) {
    val messageTextView = view.txtMessage
}

afterです。LayoutContainerをimplementした上で、containerViewをoverrideしています。これで、Android Kotlin Extensionsの生成するプロパティを使えるようになります。

class RecyclerViewHolder(override val containerView: View): RecyclerView.ViewHolder(containerView), LayoutContainer {
    val messageTextView = txtMessage
}

以上です。よろしくお願いします。