瀏覽代碼

fix: CoinFragment animation viewbinding check

wutiaorong 10 月之前
父節點
當前提交
e27475a2d0
共有 1 個文件被更改,包括 11 次插入4 次删除
  1. 11 4
      module/wallet/src/main/java/com/adealink/weparty/wallet/coin/CoinFragment.kt

+ 11 - 4
module/wallet/src/main/java/com/adealink/weparty/wallet/coin/CoinFragment.kt

@@ -12,6 +12,7 @@ import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.aab.util.getCompatDrawable
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.locale.language.languageManager
 import com.adealink.frame.log.Log
 import com.adealink.frame.mvvm.view.viewBinding
@@ -230,21 +231,27 @@ class CoinFragment : BaseFragment(R.layout.fragment_coin),
                 interpolator = DecelerateInterpolator()
                 addUpdateListener { animation ->
                     val animatedValue = animation.animatedValue as Float
-                    binding.tvBalanceValue.text = formatDotNotNull(animatedValue.toLong())
+                    updateBalanceValue(animatedValue.toLong())
                 }
                 addListener(object : AnimatorListenerAdapter() {
                     override fun onAnimationEnd(animation: Animator) {
-                        binding.tvBalanceValue.text = formatDotNotNull(to)
+                        updateBalanceValue(to)
                     }
 
                     override fun onAnimationCancel(animation: Animator) {
-                        binding.tvBalanceValue.text = formatDotNotNull(to)
+                        updateBalanceValue(to)
                     }
                 })
                 start()
             }
         } else {
-            binding.tvBalanceValue.text = formatDotNotNull(to)
+            updateBalanceValue(to)
+        }
+    }
+
+    private fun updateBalanceValue(value: Long) {
+        launchIfViewLifecycleInitialized {
+            binding.tvBalanceValue.text = formatDotNotNull(value)
         }
     }