From b46f4633ee501df3929e206824eecfbc3c091561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=B2=A9?= <17635289240@163.com> Date: Sat, 6 Mar 2021 20:49:26 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=20=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=8A=B6=E6=80=81=E5=88=B7=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zy/multistatepage/MultiStateContainer.kt | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/multistatepage/src/main/java/com/zy/multistatepage/MultiStateContainer.kt b/multistatepage/src/main/java/com/zy/multistatepage/MultiStateContainer.kt index c62cce7..d22ec00 100644 --- a/multistatepage/src/main/java/com/zy/multistatepage/MultiStateContainer.kt +++ b/multistatepage/src/main/java/com/zy/multistatepage/MultiStateContainer.kt @@ -21,10 +21,12 @@ import com.zy.multistatepage.state.SuccessState @SuppressLint("ViewConstructor") class MultiStateContainer : FrameLayout { - var originTargetView: View? = null - var onRetryEventListener: OnRetryEventListener? = null + private var originTargetView: View? = null + + private var lastState: String = "" + constructor( context: Context, originTargetView: View, @@ -34,14 +36,20 @@ class MultiStateContainer : FrameLayout { this.onRetryEventListener = onRetryEventListener } - constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) - constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { + constructor( + context: Context, + attrs: AttributeSet? + ) : this(context, attrs, 0) - } + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int + ) : super(context, attrs, defStyleAttr) override fun onFinishInflate() { super.onFinishInflate() - if (childCount == 1) { + if (originTargetView == null && childCount == 1) { originTargetView = getChildAt(0) } } @@ -66,6 +74,13 @@ class MultiStateContainer : FrameLayout { @JvmOverloads fun show(multiState: T, enableAnimator: Boolean = true, onNotifyListener: OnNotifyListener? = null) { + + if (lastState == multiState.javaClass.name) { + return + } + + lastState = multiState.javaClass.name + if (childCount == 0) { initialization() }