Files
StellarX-kaifa/开发记录/BUG/BUG-20260929-0001-Table运行期重置后页码标签被旧分页按钮快照覆盖.md
T

2.4 KiB
Raw Blame History

BUG-20260929-0001

适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。

基本信息

  • ID: BUG-20260929-0001
  • 标题: Table 运行期重置后页码标签被旧分页按钮快照覆盖
  • 状态:已修复
  • 严重性:S2
  • 优先级:P1
  • 模块: Table / Label / Button / 背景快照
  • 版本 / 分支: 当前工作区
  • 环境: Windows / EasyX / KEY1
  • 发现人: 用户
  • 关联 Fix ID: Fix-BUG-20260929-0001

问题描述

  • 现象: KEY1 页签 1 中点击页内按钮重置表头和数据后,分页区中间的页码标签只显示一部分;触发表格重绘或与其他页签按钮进行 hover 交互后恢复完整。
  • 影响范围: Table 运行期数据变化导致表格宽度及分页控件位置同时变化的场景。
  • 期望结果: 重置后的首帧立即完整显示新页码,不依赖后续 hover、翻页或页签重绘修复。
  • 实际结果: 页码已经绘制,但随后移动的分页按钮回贴旧位置背景快照,覆盖了新页码的一部分。

复现信息

  • 前置条件: 启动 KEY1 并进入页签 1。
  • 复现步骤:
  1. 点击页签 1 内用于重置表格的“按钮”。
  2. 不移动鼠标,立即观察“上一页”和“下一页”之间的页码标签。
  3. 对表格或页签 2 按钮进行 hover 交互,触发后续重绘。
  • 复现概率:稳定复现
  • 最小复现 Demo:KEY1 页签 1
  • 证据:用户截图中重置后的页码标签首帧显示不全,后续重绘恢复。

初步分析

  • 疑似位置: Table::drawPageNum()、Table::drawButton() 和内部控件 Control::setX() 的调用顺序。
  • 触发条件: 新旧表格宽度不同,分页 Label 和分页按钮需要同时横向移动。
  • 相关线索:
    • 旧顺序先绘制页码,再在 drawButton() 中移动分页按钮。
    • 分页按钮移动时会通过 discardBackground() 回贴旧背景。
    • 旧按钮区域与新页码区域相交,导致新页码被局部擦除。
  • 最近相关改动:[可选] Table 页码强制设脏和分页按钮整表重绘链已经存在,但未覆盖内部控件同帧搬移后的旧快照覆盖。

跟踪信息

  • 首次发现时间: 2026-09-29
  • 最后更新时间: 2026-09-30
  • 修复版本: 当前工作区
  • 验证版本: 2026-09-29 非 UI 全矩阵通过;2026-09-30 用户完成 KEY1 至 KEY6 手工回归,暂未发现明显问题
  • 备注:[可选]