diff --git a/CalrendarView/src/main/java/com/example/calrendarview/BaseCustomViews.kt b/CalrendarView/src/main/java/com/example/calrendarview/BaseCustomViews.kt index 2d9269e..6871235 100644 --- a/CalrendarView/src/main/java/com/example/calrendarview/BaseCustomViews.kt +++ b/CalrendarView/src/main/java/com/example/calrendarview/BaseCustomViews.kt @@ -2,26 +2,48 @@ 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 -class BaseCustomViews : View { - constructor(context: Context?) : super(context){appyAttrs(null)} - constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs){appyAttrs(attrs)} - constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( +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(attrs)} + ){appyAttrs(context,attrs)} constructor( - context: Context?, + context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int - ) : super(context, attrs, defStyleAttr, defStyleRes) {appyAttrs(attrs)} - - - fun appyAttrs(attrs: AttributeSet?) { + ) : 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) + } } -} \ No newline at end of file + + 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) { +// +// } +// } +} diff --git a/CalrendarView/src/main/java/com/example/calrendarview/DayView.kt b/CalrendarView/src/main/java/com/example/calrendarview/DayView.kt index 843505d..313d91f 100644 --- a/CalrendarView/src/main/java/com/example/calrendarview/DayView.kt +++ b/CalrendarView/src/main/java/com/example/calrendarview/DayView.kt @@ -1,28 +1,20 @@ package com.example.calrendarview import android.content.Context +import android.graphics.Canvas +import android.graphics.Color import android.util.AttributeSet import android.view.View -class DayView : View { - constructor(context: Context?) : super(context){appyAttrs(null)} - constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs){appyAttrs(attrs)} - constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( - context, - attrs, - defStyleAttr - ){appyAttrs(attrs)} - - constructor( - context: Context?, - attrs: AttributeSet?, - defStyleAttr: Int, - defStyleRes: Int - ) : super(context, attrs, defStyleAttr, defStyleRes) {appyAttrs(attrs)} +class DayView : BaseCustomViews { + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) - fun appyAttrs(attrs: AttributeSet?) { - + override fun appyAttrs(context: Context?, attrs: AttributeSet?) { + super.appyAttrs(context, attrs) } fun displayDayNumber() { @@ -37,4 +29,11 @@ class DayView : View { return false } + + override fun draw(canvas: Canvas) { + canvas.drawColor(Color.CYAN) + super.draw(canvas) + + } + } diff --git a/CalrendarView/src/main/java/com/example/calrendarview/MonthView.kt b/CalrendarView/src/main/java/com/example/calrendarview/MonthView.kt index b27b75f..d09c900 100644 --- a/CalrendarView/src/main/java/com/example/calrendarview/MonthView.kt +++ b/CalrendarView/src/main/java/com/example/calrendarview/MonthView.kt @@ -6,25 +6,15 @@ import android.view.View import com.example.calrendarview.model.DayInfo -class MonthView : View { - constructor(context: Context?) : super(context){appyAttrs(null)} - constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs){appyAttrs(attrs)} - constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super( - context, - attrs, - defStyleAttr - ){appyAttrs(attrs)} - - constructor( - context: Context?, - attrs: AttributeSet?, - defStyleAttr: Int, - defStyleRes: Int - ) : super(context, attrs, defStyleAttr, defStyleRes) {appyAttrs(attrs)} +class MonthView : BaseCustomViews { + constructor(context: Context) : super(context) + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) - fun appyAttrs(attrs: AttributeSet?) { - + override fun appyAttrs(context: Context?, attrs: AttributeSet?) { + super.appyAttrs(context, attrs) } var numberOfRow : Int = 7 diff --git a/CalrendarView/src/main/res/layout/item_day.xml b/CalrendarView/src/main/res/layout/item_day.xml new file mode 100644 index 0000000..9ff8d05 --- /dev/null +++ b/CalrendarView/src/main/res/layout/item_day.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/CalrendarView/src/main/res/values/attr.xml b/CalrendarView/src/main/res/values/attr.xml new file mode 100644 index 0000000..55e73fc --- /dev/null +++ b/CalrendarView/src/main/res/values/attr.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/CalrendarView/src/main/res/values/values.xml b/CalrendarView/src/main/res/values/values.xml new file mode 100644 index 0000000..3261aff --- /dev/null +++ b/CalrendarView/src/main/res/values/values.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file