Platform / 平台
macOS
Lithe version / Lithe 版本
8.19 最新编译结果
OS and architecture / 操作系统与架构
15 M4 MacOS27 beta6
Environment / 环境信息
No response
Steps to reproduce / 复现步骤
- 项目树的滚动内容原来使用 LazyVStack,但这个栈实际上只有一个直接子视图:ProjectFileTreeContent。
- 真正的文件夹和文件行是在 FileNodeRow 内部递归生成的,见 Sources/Lithe/Views/Workspace/ProjectSidebarView.swift:326。
- LazyVStack 只能基于直接子视图进行懒加载和尺寸估算,无法把递归生成的每一行当成独立滚动元素。
- 当展开大量目录时,项目树视觉上已经变长,但 ScrollView 获得的逻辑内容高度可能仍只覆盖部分目录,导致底部文件位于滚动范围之外。
- 目录较少或展开内容未超过视口时,不会暴露问题。
- 某些展开顺序或状态刷新会触发完整重新测量,因此暂时可以滚动。
- 当大量目录在 LazyVStack 已建立布局后继续展开,内容高度可能只进行局部更新,滚动范围便可能小于实际树高度。
- 所以它取决于目录数量、展开顺序和 SwiftUI 当前的布局刷新时机,表现为“偶现”。
Expected behavior / 预期行为
预期正常滚动
Actual behavior / 实际行为
偶发性滚动条没有办法显示出来的同时也没有办法使用触控板滚动,需要移动边框刷新 UI 才可以继续滚动
Logs or diagnostic output / 日志或诊断输出
Screenshots or recordings / 截图或录屏
No response
Checklist / 提交前检查
Platform / 平台
macOS
Lithe version / Lithe 版本
8.19 最新编译结果
OS and architecture / 操作系统与架构
15 M4 MacOS27 beta6
Environment / 环境信息
No response
Steps to reproduce / 复现步骤
Expected behavior / 预期行为
预期正常滚动
Actual behavior / 实际行为
偶发性滚动条没有办法显示出来的同时也没有办法使用触控板滚动,需要移动边框刷新 UI 才可以继续滚动
Logs or diagnostic output / 日志或诊断输出
Screenshots or recordings / 截图或录屏
No response
Checklist / 提交前检查