diff --git a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt index 9f11c71..c157ab3 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt @@ -130,9 +130,9 @@ class HomeFragment : BaseFragment() { val result = safeApiCall { taskApi.getStatistics() } if (result is ApiResult.Success && result.data != null) { val data = result.data - tvPoolNum.text = data.waitForTask.toString() - tvPunchNum.text = data.treatTask.toString() - tvCompleteNum.text = data.incompleteTask.toString() + updateCardNum(tvPoolNum, data.waitForTask) + updateCardNum(tvPunchNum, data.treatTask) + updateCardNum(tvCompleteNum, data.incompleteTask) notificationManager.lastStats = data Timber.d("首页: lastStats 基准已设置 ${data}") } @@ -404,14 +404,22 @@ class HomeFragment : BaseFragment() { notificationManager.lastStats = data } - // 更新数字 - tvPoolNum.text = data.waitForTask.toString() - tvPunchNum.text = data.treatTask.toString() - tvCompleteNum.text = data.incompleteTask.toString() + // 只在值变化时更新数字(避免刷新闪烁) + updateCardNum(tvPoolNum, data.waitForTask) + updateCardNum(tvPunchNum, data.treatTask) + updateCardNum(tvCompleteNum, data.incompleteTask) } } } + /** 数字有变化时才更新 TextView(避免重复赋值导致闪烁) */ + private fun updateCardNum(tv: android.widget.TextView, value: Int) { + val newText = value.toString() + if (tv.text.toString() != newText) { + tv.text = newText + } + } + // ===== 设置页 ===== /** 保存 configPage 引用,用于直接填充数据 */