Ответ
Имею 3+ года опыта работы с View и ViewGroup в Android. Уверенно работаю с кастомными вьюхами, переопределяю onDraw(), onMeasure(), onLayout(). Оптимизировал производительность через View.invalidate() и View.postInvalidate().
Пример кастомной View:
class CustomCircleView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null
) : View(context, attrs) {
private val paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
color = Color.RED
style = Paint.Style.FILL
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
canvas.drawCircle(width / 2f, height / 2f, 100f, paint)
}
}
Также работал с MotionLayout, ConstraintLayout, решал проблемы вложенности вьюх и перерисовок.