首页 > 解决方案 > 如何将 Android ViewBinding 用于从现有布局扩展的自定义视图

问题描述

我看到有对 Activity 和 Fragment 的 ViewBinding 支持。但是自定义视图呢?

我的自定义视图喜欢这样:

class MyView @JvmOverloads constructor(
        context: Context,
        attrs: AttributeSet? = null,
        defStyleAttr: Int = 0,
        defStyleRes: Int = 0
) : LinearLayout(context, attrs, defStyleAttr, defStyleRes) {

    init {
        inflate(context, R.layout.my_view, this)
    }
}

我尝试创建 ViewBinding 但它不起作用。

    private val binding: MyViewBinding

    init {
        inflate(context, R.layout.my_view, this)
        binding = MyViewBinding.inflate(LayoutInflater.from(context))
    }

你有自定义视图的 ViewBinding 解决方案吗?

标签: androidandroid-custom-viewandroid-viewbinding

解决方案


你尝试替换

   init {
        inflate(context, R.layout.my_view, this)
        binding = MyViewBinding.inflate(LayoutInflater.from(context))
    }

   init {
        binding = MyViewBinding.inflate(LayoutInflater.from(context),this, false)
    }

推荐阅读