web-dev-qa-db-ja.com

カスタムビューでビューバインディングを使用する方法

View Bindingはv3.6でリリースされました。

ドキュメント: https://developer.Android.com/topic/libraries/view-binding

私の質問は、カスタムビューでビューバインディングを使用する方法です。 Googleのドキュメントには、ショーケースのアクティビティとフラグメントのみが含まれています。

試しましたが何も表示されませんでした。

LayoutInflater inflater = LayoutInflater.from(getContext());

そして、私はこれを使いましたが、やはり運がありませんでした。

LayoutInflater inflater = (LayoutInflater)
            getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

おそらく、私は自分のビューに合った適切なレイアウトインフレーターを対象にしていないかもしれませんが、それについてはわかりません。

3
Emi Raz

ルートビューでビューバインディングを使用しようとしている場合、これは私にとってはうまくいきます:

class CustomView @JvmOverloads constructor(
    context: Context,
    attrs: AttributeSet? = null,
    defStyleAttr: Int = 0
) : ConstraintLayout(context, attrs, defStyleAttr) {

    private lateinit var binding: CustomViewBinding

    override fun onFinishInflate() {
        super.onFinishInflate()
        binding = CustomViewBinding.bind(this)
    }
}
0
Jason Toms