kunfei 4 лет назад
Родитель
Сommit
f2b9164c71
1 измененных файлов с 13 добавлено и 15 удалено
  1. 13 15
      app/src/main/java/io/legado/app/utils/ConstraintModify.kt

+ 13 - 15
app/src/main/java/io/legado/app/utils/ConstraintModify.kt

@@ -5,11 +5,22 @@ import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.constraintlayout.widget.ConstraintSet
 import androidx.transition.TransitionManager
 
+fun ConstraintLayout.modify(withAnim: Boolean = false): ConstraintModify.ConstraintBegin {
+    val begin = ConstraintModify(this).begin
+    if (withAnim) {
+        TransitionManager.beginDelayedTransition(this)
+    }
+    return begin
+}
 
 @Suppress("MemberVisibilityCanBePrivate", "unused")
 class ConstraintModify(private val constraintLayout: ConstraintLayout) {
 
-    private var begin: ConstraintBegin? = null
+    val begin: ConstraintBegin by lazy {
+        ConstraintBegin(constraintLayout, applyConstraintSet).apply {
+            applyConstraintSet.clone(constraintLayout)
+        }
+    }
     private val applyConstraintSet = ConstraintSet()
     private val resetConstraintSet = ConstraintSet()
 
@@ -17,26 +28,13 @@ class ConstraintModify(private val constraintLayout: ConstraintLayout) {
         resetConstraintSet.clone(constraintLayout)
     }
 
-    /**
-     * 开始修改
-     */
-    fun begin(): ConstraintBegin {
-        synchronized(ConstraintBegin::class.java) {
-            if (begin == null) {
-                begin = ConstraintBegin(constraintLayout, applyConstraintSet)
-            }
-        }
-        applyConstraintSet.clone(constraintLayout)
-        return begin!!
-    }
-
     /**
      * 带动画的修改
      * @return
      */
     fun beginWithAnim(): ConstraintBegin {
         TransitionManager.beginDelayedTransition(constraintLayout)
-        return begin()
+        return begin
     }
 
     /**