web-dev-qa-db-fra.com

Comment utiliser la liaison de vue sur des vues personnalisées

View Binding est sorti avec la v3.6.

Documents: https://developer.Android.com/topic/libraries/view-binding

Ma question est de savoir comment utiliser la liaison de vue avec des vues personnalisées. La documentation Google ne contient que des activités et des fragments de présentation.

J'ai essayé cela, mais rien n'a été montré.

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

Et puis, j'ai utilisé celui-ci, mais encore une fois, pas de chance.

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

Je suppose que je ne cible peut-être pas le gonfleur de mise en page correct pour ma vue, mais je n'en suis pas sûr.

3
Emi Raz

Si vous essayez d'utiliser la liaison de vue avec la vue racine, cela fonctionne pour moi:

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