ElyTable:工作表过多时标签条不自动调整滚动位置,右侧工作表无法到达 #8

Open
opened 2026-10-17 07:45:26 +00:00 by Cecil · 0 comments

环境

  • ElyTable 0.1.5(Linux 7.2.9-arch1-1;EndeavourOS ; Linux AppImage。
  • 已在 v0.1.6、v0.1.7 的发布日志中确认该问题未修:两条日志均未涉及工作表标签条,v0.1.7 之后 main 无新提交。

复现步骤

  1. 打开一个工作表数量较多的 xlsx,使工作表标签条的总宽度超过窗口宽度,标签条出现溢出裁切。
  2. 点击标签条上当前可见的最右侧工作表标签。

实际结果

  • 被点击的工作表成为活动工作表,但标签条不横向滚动,活动标签仍贴住窗口右边缘被裁切。
  • 被裁切到窗口外的工作表无法通过标签条到达。

期望结果

标签条按需横向滚动,把活动工作表标签完整显示在可见区域内。与 Excel / WPS 一致的行为是:活动工作表变化时,标签条调整滚动位置使该标签完整可见,而不是让活动标签停在窗口边缘。

源码线索

  • 标签条由 apps/ely-table/src/sheets.rs:108 的 sheet_strip() 构造,用 Tabs::new("table-sheets", choices, current),外观定位 TabPlacement::Bottom。
  • 组件实现在 Ely-GPUI-Components(pin 2e65b05)的 src/navigation/tabs.rs:标签条根节点是 div().id((self.id.clone(), "strip"))...flex(),没有横向滚动容器、没有 track_scroll,也没有“把所选
    标签滚入可见区”的逻辑。
  • 建议修法(任选):标签条换成横向滚动容器并 track_scroll,在选中项或新增工作表后把该标签滚动到可见;或按 Excel 的做法,在标签条两端加滚动箭头。
环境 - ElyTable 0.1.5(Linux 7.2.9-arch1-1;EndeavourOS ; Linux AppImage。 - 已在 v0.1.6、v0.1.7 的发布日志中确认该问题未修:两条日志均未涉及工作表标签条,v0.1.7 之后 main 无新提交。 复现步骤 1. 打开一个工作表数量较多的 xlsx,使工作表标签条的总宽度超过窗口宽度,标签条出现溢出裁切。 2. 点击标签条上当前可见的最右侧工作表标签。 实际结果 - 被点击的工作表成为活动工作表,但标签条不横向滚动,活动标签仍贴住窗口右边缘被裁切。 - 被裁切到窗口外的工作表无法通过标签条到达。 期望结果 标签条按需横向滚动,把活动工作表标签完整显示在可见区域内。与 Excel / WPS 一致的行为是:活动工作表变化时,标签条调整滚动位置使该标签完整可见,而不是让活动标签停在窗口边缘。 源码线索 - 标签条由 apps/ely-table/src/sheets.rs:108 的 sheet_strip() 构造,用 Tabs::new("table-sheets", choices, current),外观定位 TabPlacement::Bottom。 - 组件实现在 Ely-GPUI-Components(pin 2e65b05)的 src/navigation/tabs.rs:标签条根节点是 div().id((self.id.clone(), "strip"))...flex(),没有横向滚动容器、没有 track_scroll,也没有“把所选 标签滚入可见区”的逻辑。 - 建议修法(任选):标签条换成横向滚动容器并 track_scroll,在选中项或新增工作表后把该标签滚动到可见;或按 Excel 的做法,在标签条两端加滚动箭头。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ZacharyZhang-NY/ElyOffice#8