Skip to content

[Bug] MacOS 文件打开部分内容过长有的时候出现滚动不了的情况,需要适配一下滚动空间的控制范围 #191

Description

@xiaoyumuxi

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 / 提交前检查

  • I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复报告。
  • I removed secrets and personal data from the report. / 我已从报告中移除敏感信息和个人数据。

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmacossomething related to macos strongly

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions