fix: 首页卡片数字只在值变化时更新,减少刷新闪烁
之前每次 fetchStatistics 都重新赋值 text,即使值没变也触发重绘 改为先比较再赋值,值相同时不操作 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -130,9 +130,9 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
|
|||||||
val result = safeApiCall { taskApi.getStatistics() }
|
val result = safeApiCall { taskApi.getStatistics() }
|
||||||
if (result is ApiResult.Success && result.data != null) {
|
if (result is ApiResult.Success && result.data != null) {
|
||||||
val data = result.data
|
val data = result.data
|
||||||
tvPoolNum.text = data.waitForTask.toString()
|
updateCardNum(tvPoolNum, data.waitForTask)
|
||||||
tvPunchNum.text = data.treatTask.toString()
|
updateCardNum(tvPunchNum, data.treatTask)
|
||||||
tvCompleteNum.text = data.incompleteTask.toString()
|
updateCardNum(tvCompleteNum, data.incompleteTask)
|
||||||
notificationManager.lastStats = data
|
notificationManager.lastStats = data
|
||||||
Timber.d("首页: lastStats 基准已设置 ${data}")
|
Timber.d("首页: lastStats 基准已设置 ${data}")
|
||||||
}
|
}
|
||||||
@@ -404,14 +404,22 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
|
|||||||
notificationManager.lastStats = data
|
notificationManager.lastStats = data
|
||||||
}
|
}
|
||||||
|
|
||||||
// 更新数字
|
// 只在值变化时更新数字(避免刷新闪烁)
|
||||||
tvPoolNum.text = data.waitForTask.toString()
|
updateCardNum(tvPoolNum, data.waitForTask)
|
||||||
tvPunchNum.text = data.treatTask.toString()
|
updateCardNum(tvPunchNum, data.treatTask)
|
||||||
tvCompleteNum.text = data.incompleteTask.toString()
|
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 引用,用于直接填充数据 */
|
/** 保存 configPage 引用,用于直接填充数据 */
|
||||||
|
|||||||
Reference in New Issue
Block a user