Ответ
AttributeSet позволяет получить XML-атрибуты View при её создании. Когда система разбирает XML-разметку, она передает все атрибуты в виде AttributeSet в конструктор View. Это позволяет кастомизировать View прямо из XML.
Пример:
class CustomView(context: Context, attrs: AttributeSet) : View(context, attrs) {
init {
val typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomView)
val customColor = typedArray.getColor(R.styleable.CustomView_customColor, Color.RED)
typedArray.recycle()
setBackgroundColor(customColor)
}
}
В XML:
<com.example.CustomView
app:customColor="@color/blue" />
Без AttributeSet мы не смогли бы передавать параметры из XML в код.