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