diff --git a/views/src/main/java/ru/touchin/roboswag/views/CrossfadeView.kt b/views/src/main/java/ru/touchin/roboswag/views/CrossfadeView.kt
new file mode 100644
index 0000000..b8e3e52
--- /dev/null
+++ b/views/src/main/java/ru/touchin/roboswag/views/CrossfadeView.kt
@@ -0,0 +1,44 @@
+package ru.touchin.roboswag.views
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ViewAnimator
+import androidx.annotation.IdRes
+import androidx.core.content.withStyledAttributes
+import androidx.core.view.children
+
+class CrossfadeView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null
+) : ViewAnimator(context, attrs) {
+
+ @IdRes
+ private var defaultChild: Int = 0
+
+ init {
+ setInAnimation(context, R.anim.fade_in_animation)
+ setOutAnimation(context, R.anim.fade_out_animation)
+
+ context.withStyledAttributes(attrs, R.styleable.CrossfadeView, 0) {
+ defaultChild = getResourceId(R.styleable.CrossfadeView_defaultChild, 0)
+ }
+ }
+
+ fun showChild(@IdRes childId: Int) {
+ children.forEachIndexed { index, view ->
+ if (view.id == childId && displayedChild != index) {
+ displayedChild = index
+ }
+ }
+ }
+
+ override fun addView(child: View, index: Int, params: ViewGroup.LayoutParams?) {
+ super.addView(child, index, params)
+ if (child.id == defaultChild) {
+ showChild(defaultChild)
+ }
+ }
+
+}
diff --git a/views/src/main/res/anim/fade_in_animation.xml b/views/src/main/res/anim/fade_in_animation.xml
new file mode 100644
index 0000000..8db9f37
--- /dev/null
+++ b/views/src/main/res/anim/fade_in_animation.xml
@@ -0,0 +1,6 @@
+
+
diff --git a/views/src/main/res/anim/fade_out_animation.xml b/views/src/main/res/anim/fade_out_animation.xml
new file mode 100644
index 0000000..feb5b9b
--- /dev/null
+++ b/views/src/main/res/anim/fade_out_animation.xml
@@ -0,0 +1,5 @@
+
diff --git a/views/src/main/res/values/attrs.xml b/views/src/main/res/values/attrs.xml
index 9b154af..8b892a4 100644
--- a/views/src/main/res/values/attrs.xml
+++ b/views/src/main/res/values/attrs.xml
@@ -56,4 +56,8 @@
+
+
+
+