From 70f2bfb7604a8c4b52d62d91da62b2253e87c5e6 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Sun, 12 Nov 2023 15:49:55 +0800 Subject: [PATCH] Fix fab animation --- .../main/kotlin/com/hippo/ehviewer/ui/legacy/FabLayout.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/FabLayout.kt b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/FabLayout.kt index d74673577..8eb398f81 100644 --- a/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/FabLayout.kt +++ b/app/src/main/kotlin/com/hippo/ehviewer/ui/legacy/FabLayout.kt @@ -49,6 +49,7 @@ class FabLayout @JvmOverloads constructor( private var mOnExpandListeners = arrayListOf() private var mOnClickFabListener: OnClickFabListener? = null private var fabAnimator: ViewPropertyAnimator? = null + private var isHiding = false private val mOnBackPressedCallback = object : OnBackPressedCallback(false), OnExpandListener { override fun handleOnBackPressed() { @@ -62,6 +63,7 @@ class FabLayout @JvmOverloads constructor( private val mFabAnimatorListener = object : SimpleAnimatorListener() { override fun onAnimationEnd(animation: Animator) { primaryFab.isVisible = false + isHiding = false } } @@ -442,10 +444,11 @@ class FabLayout @JvmOverloads constructor( fun hide(animation: Boolean = true): Long { val fab = primaryFab setExpanded(expanded = false, animation = true) - return if (!fab.isVisible) { + return if (!fab.isVisible || isHiding) { 0L } else { if (animation) { + isHiding = true fabAnimator?.cancel() fabAnimator = fab.animate().scaleX(0f).scaleY(0f).rotation(-ROTATION_DEGREE) .setListener(mFabAnimatorListener).setDuration(ANIMATE_TIME).setStartDelay(0L)