May helpful, making custom view in kotlin.
Initiation Timing.
// 1.
init {
}
// 2.
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
}
// 3.
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
}
// 4.
override fun dispatchDraw(canvas: Canvas) {
super.dispatchDraw(canvas)
}
Z position.
// 1.
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
// 가장 밑에서 그러진다.
}
// 2.
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
// 여기서 addview한 view는 onDraw의 canvas 보다 상단에 위치함.
}
// 3.
override fun dispatchDraw(canvas: Canvas) {
super.dispatchDraw(canvas)
// onDraw의 canvas와 onMeasure에서 add된 view들 보다도 가장 최상단에 그러지게 된다.
}