Files
yiciheng 2c23679ebb feat: 微信 AI 助手插件(wechat-ai)基线
- 移除旧 aitest 与 mobile-ui-auto 插件及其资源、测试
- 新增纯 Java 微信 AI 助手插件(ADB 驱动 + AI 回复)
- 同步更新主界面图标映射、主题样式与插件配置
2026-08-16 11:52:52 +08:00

1.8 KiB
Raw Permalink Blame History

WorkUtils UI 开发规则

1. CSS 优先级铁律(AtlantaFX 环境)

文本颜色

  • 禁止纯 CSS 设置导航栏选中文字色,AtlantaFX .label 会覆盖(含 !important)。
  • 正确做法:Java 代码中 label.setTextFill(Color.WHITE) 直接设置。

背景透明

  • ListView 内部容器透明需覆盖完整链路:.list-view, .viewport, .virtual-flow, .virtual-flow > *, .clipped-container, .sheet, .corner。
  • 同时用 Java 代码 setStyle("-fx-background-color: transparent;") 做 inline 兜底。

选中态

  • 必须同时覆盖 .list-cell:selected 和 .list-cell:filled:selected。
  • .list-cell:selected 设置透明背景兜底 → 防止虚拟化复用时空 cell 闪现蓝色。
  • .list-cell:filled:selected 设置激活背景 → CSS 优先级更高,非空选中 cell 生效。

2. ListView 虚拟化陷阱

  • ListView 使用 VirtualFlow,cell 会被复用。每次 updateItem(empty=true) 时:
    • 必须清理自定义 style class(先 removeAll 再按需 add)。
    • 禁止 empty 分支中直接用 setAll()(会误删 JavaFX 内置 list-cell class)。
  • selectedProperty() listener 中调用 updateStyleClass() 时,要兼容 empty 状态。

3. 布局规则

  • ListView 导航栏使用 VBox.setVgrow(navList, Priority.ALWAYS) 撑满剩余空间。
  • 不要在 refreshNavItems() 中重新设置 prefHeight/minHeight/maxHeight,会与 grow 冲突。
  • 滚动条自然出现在 ListView 右侧底部,无需额外处理。

4. 修改验证流程

修改 UI 样式后:

  1. 先检查 AtlantaFX/modena.css 是否有同名规则覆盖。
  2. 优先使用 Java 端代码设置(setStyle/setTextFill),再补充 CSS。
  3. 对虚拟化组件(ListView/TableView),验证 resize 窗口场景。