From 17697670a8eab957c4e45d899810db235bd89509 Mon Sep 17 00:00:00 2001 From: kunfei Date: Sat, 19 Feb 2022 13:18:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/utils/ConstraintModify.kt | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/io/legado/app/utils/ConstraintModify.kt b/app/src/main/java/io/legado/app/utils/ConstraintModify.kt index ed4a55caf..3adc79c26 100644 --- a/app/src/main/java/io/legado/app/utils/ConstraintModify.kt +++ b/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 } /**