package com.example.calrendarview import android.content.Context import android.util.AttributeSet import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout abstract class BaseCustomViews : ConstraintLayout { constructor(context: Context) : super(context){appyAttrs(context,null)} constructor(context: Context, attrs: AttributeSet?) : super(context, attrs){appyAttrs(context,attrs)} constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super( context, attrs, defStyleAttr ){appyAttrs(context,attrs)} constructor( context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int ) : super(context, attrs, defStyleAttr, defStyleRes) {appyAttrs(context,attrs)} var layouId : Int = -1 open fun appyAttrs(context: Context?, attrs: AttributeSet?) { context?.let { val typedArray = it.obtainStyledAttributes(attrs, R.styleable.BaseCustomViews) layouId = typedArray.getResourceId(R.styleable.BaseCustomViews_item_layout,R.layout.item_day) initLayout(it) } } fun initLayout(context: Context?) { createdLayout(LayoutInflater.from(context).inflate(layouId, this, true)) } open fun createdLayout(view : View) { Log.e(this::class.simpleName,"view si $view") } // override fun onLayout(changed: Boolean, l: Int, t: Int, r: Int, b: Int) { // if (changed) { // // } // } }