山海万灵 HarmonyOS 文化知识设计续篇(14):2in1 设备键鼠交互补齐方案
在 2in1 宽屏窗口里触摸、鼠标和键盘会交替出现。山海万灵的卡片、筛选和详情入口需要把“看见焦点”“暂时悬停”“真正选中”分开处理才能让鼠标点击、Enter 和 Space 进入同一条业务命令。本篇给出键鼠交互补齐的设计方案范围覆盖输入状态、焦点顺序、统一激活和窗口变化后的恢复。一、先确定交互边界方案服务于首页、图鉴、探索、馆长和“我的”中的可操作元素一级导航、筛选项、神兽卡片、推荐卡片、详情中的继续探索动作以及设置项。触摸手势、既有视觉主题和五个一级导航保持原状本轮不引入新的业务流程也不把宽屏适配等同于键鼠能力。鼠标悬停只提供短暂视觉反馈键盘焦点只服务于可访问性和键盘操作业务选中态才决定详情、筛选结果或探索目标。三种状态混用时鼠标移出可能错误清掉业务选择窗口切换也会让焦点回落到不可操作位置。二、把输入状态显式建模type InputMode touch | mouse | keyboard interface FocusState { inputMode: InputMode focusedId: string hoveredId: string selectedId: string } interface ActivationRequest { id: string source: click | keyboard }focusedId、hoveredId与selectedId分别保存焦点、悬停和业务选择。页面切换、数据刷新或尺寸变化时只恢复仍然存在且可用的焦点目标找不到目标时回退到所属区域第一个可操作控件。三、统一鼠标与键盘的激活入口卡片点击与键盘确认不应各自维护导航、发现或统计更新逻辑。组件负责把输入转换为ActivationRequest领域命令负责完成一次动作页面只接收结果并刷新选择、提示和进度。这样可以让后续的新增输入设备继续复用同一条链路。function onCardKey(event: KeyEvent, id: string): void { if (event.keyCode KEY_ENTER || event.keyCode KEY_SPACE) { activate({ id, source: keyboard }) } } async function activate(request: ActivationRequest): Promisevoid { if (!isEnabled(request.id)) return const result await appViewModel.dispatch(request) viewState.selectedId request.id notice result.notice }四、键鼠设计链路下图将输入事件、统一激活、业务状态与可恢复反馈拆开。卡片不再直接根据输入设备修改业务状态同一个激活命令可以在点击和键盘确认之间复用禁用项和已卸载目标则进入明确的降级路径。五、焦点顺序与视觉顺序一致页面按“一级导航 → 页内筛选 → 主列表或主要内容 → 辅助操作”的阅读路径建立焦点顺序。Tab 前进、ShiftTab 回退卡片列表在需要时使用方向键完成同层移动Escape 返回上级区域或关闭轻量弹层。焦点环应独立于选中背景深浅色主题分别校验对比度避免只靠透明度造成不可见反馈。场景风险设计处理焦点顺序与视觉顺序不一致键盘用户失去位置感建立显式顺序并在页面评审中逐项核对悬停色在深色模式不明显鼠标目标不可辨识为 hover 与 focus 分别定义对比度和边框规则禁用控件仍可聚焦确认键触发无效动作禁用同时影响可聚焦性和激活入口宽窄窗口切换卸载目标焦点丢失回退到所属区域首个可操作元素六、失败与降级路径输入设备暂不可用、目标项被刷新移除、动作被权限或业务条件拒绝时页面保留已选业务内容不把临时 hover 当成选中结果。焦点回退后给出可读提示重复确认不重复累计发现或印章无可用目标时将焦点停在页内说明区域并提供返回或重试入口。function recoverFocus(previousId: string, candidates: string[]): string { if (candidates.includes(previousId)) return previousId return candidates.find(isEnabled) ?? } function onTargetRemoved(previousId: string): void { viewState.focusedId recoverFocus(previousId, visibleActionIds()) hoverState.clear() }七、实施顺序盘点五个一级页面的可操作元素和视觉阅读顺序。为共用卡片补齐 hover、focus、disabled、selected 四套状态契约。接入统一激活命令再将点击、Enter 与 Space 接到同一入口。为 Tab、方向键和 Escape 建立页面级规则。在 2in1 或桌面窗口环境进行输入切换与窗口缩放回归。八、验收清单鼠标悬停不会修改业务选中态。Tab 顺序与视觉阅读顺序一致ShiftTab 能稳定回退。Enter、Space 与点击复用同一业务命令。禁用控件不会获得可激活焦点。窄窗与宽窗切换后焦点能恢复到可操作目标。深浅色主题下的焦点环和悬停态均可辨识。九、后续验证计划落地后以键盘事件与 hover/focus 处理代码、2in1 或桌面窗口操作录屏、Tab 顺序与 Enter 激活日志、窗口切换后的焦点恢复画面为验收证据并完成 HarmonyOS 构建和正式包运行复核。相关能力以实际交互结果为准。参考HarmonyOS 响应式布局指南

相关新闻

生命涌现的小龙虾技能之【Reptile Shedding Progress Analysis | 爬宠蜕皮进度识别】简介

生命涌现的小龙虾技能之【Reptile Shedding Progress Analysis | 爬宠蜕皮进度识别】简介

🦎 Reptile Shedding Progress Analysis | 爬宠蜕皮进度识别 智能分析中枢 图片/视频智能分析 结构化报告 历史报告云端查询 🧭 技能概览 | Overview 模块内容🏷️ 技能名称爬宠蜕皮进度识别🎯 核心目标通过爬宠箱固定摄像头&…

2026/10/20 15:07:33 阅读更多 →
C# 实现 Office 文档(Word/Excel/PPT)在线预览的完整指南

C# 实现 Office 文档(Word/Excel/PPT)在线预览的完整指南

1. 引言 在现代企业应用和知识管理系统中,Office 文档(Word、Excel、PowerPoint)的在线预览是一个常见且核心的需求。它允许用户无需下载和安装本地 Office 软件,即可在浏览器中直接查看文档内容,极大地提升了用户体验…

2026/10/20 19:01:05 阅读更多 →
深度解析BIThesis表格与矩阵行间距优化:6种实战方案解决排版痛点

深度解析BIThesis表格与矩阵行间距优化:6种实战方案解决排版痛点

深度解析BIThesis表格与矩阵行间距优化:6种实战方案解决排版痛点 【免费下载链接】BIThesis 📖 北京理工大学非官方 LaTeX 模板集合,包含本科、研究生毕业设计模板及更多。🎉 (更多文档请访问 wiki 和 release 中的手册…

2026/10/20 19:01:29 阅读更多 →

最新新闻

Linux内核挂死全解析:从现象到kdump实战排查

Linux内核挂死全解析:从现象到kdump实战排查

干内核这一行的人,最怕的其实不是进程崩溃,也不是磁盘写满,而是那种半夜被电话叫醒,电话那头只说一句“机器连不上了,ping 不通,屏幕卡死,按什么都没反应”。这种时候,十有八九是 Li…

2026/10/20 23:46:41 阅读更多 →
五星级酒店弱电设计工程逻辑链与国标落地指南

五星级酒店弱电设计工程逻辑链与国标落地指南

简介:本资源是一份面向建筑智能化设计工程师、酒店弱电系统集成商及高校智能建筑相关专业师生的五星级酒店弱电智能化设计方案PPT,聚焦于高规格酒店场景下的系统规划与工程落地。方案由具备国家建筑智能化设计施工一级资质的XXXXXX科技有限责任公司于201…

2026/10/20 23:46:41 阅读更多 →
从11.25亿网民到2亿次AI下单:AI正在重塑互联网交互与支付

从11.25亿网民到2亿次AI下单:AI正在重塑互联网交互与支付

1. 从一组数据聊起:互联网行业正在换挡最近有朋友问我,现在做互联网方向还有没有机会。我的回答是,先别急着看机会,先看一组刚刚出来的行业数据:我国网民规模达到11.25亿人,互联网普及率突破80%&#xff1b…

2026/10/20 23:46:41 阅读更多 →
海市蜃楼算法优化无人机路径:原理、Matlab实现与调参全记录

海市蜃楼算法优化无人机路径:原理、Matlab实现与调参全记录

先声明一下,这篇文章不是论文复现的搬运工,而是我自己把“海市蜃楼算法(MSO)”用在无人机路径规划问题上,从零到一写 Matlab 代码、调参、踩坑、最后跑出结果的全过程记录。如果你手头也有一个路径规划问题&#xff0c…

2026/10/20 23:46:41 阅读更多 →
AI 3D生成工具如何重塑UGC玩法:10秒产出高精度模型

AI 3D生成工具如何重塑UGC玩法:10秒产出高精度模型

游戏开发效率革命!用AI 3D工具让UGC玩法爆火,10秒生成高精度模型前阵子和几个做游戏的朋友聊天,大家不约而同都在吐槽同一个痛点:3D资产的生产效率根本赶不上玩法迭代的速度。特别是UGC(用户生成内容)玩法&…

2026/10/20 23:46:41 阅读更多 →
WorkBuddy Skill机制实战:从目录设计到热加载的完整拆解

WorkBuddy Skill机制实战:从目录设计到热加载的完整拆解

WorkBuddy 的 Skill 机制我算是从零开始一点一点啃下来的。最早接触它的时候,我以为就是个普通的插件系统,无非是放几个脚本、写个配置文件、按需加载而已。真正深入进去才发现,一套设计良好的 Skill 机制,涉及存放路径、加载时序、更新策略和长期维护四个维度,每个维度里还藏着…

2026/10/20 23:45:38 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →