优化
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user