山海万灵 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/8/6 14:22:00 阅读更多 →
C# 实现 Office 文档(Word/Excel/PPT)在线预览的完整指南

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

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

2026/8/6 14:21:00 阅读更多 →
深度解析BIThesis表格与矩阵行间距优化:6种实战方案解决排版痛点

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

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

2026/8/6 14:21:00 阅读更多 →

最新新闻

腾讯元宝代码复制到 Word 后缩进乱?DS 随心转先保留结构再整理

腾讯元宝代码复制到 Word 后缩进乱?DS 随心转先保留结构再整理

一句话答案:腾讯元宝回答里的代码块复制到 Word 后出现缩进、换行或等宽字体错乱,通常是网页样式没有随复制内容保留下来;先保留 Markdown 或纯文本备份,再按代码块处理,批量整理时可用 DS 随心转导出。常见症状用腾讯…

2026/8/6 15:15:31 阅读更多 →
免费开源二维码修复工具:QRazyBox终极指南,轻松拯救损坏二维码

免费开源二维码修复工具:QRazyBox终极指南,轻松拯救损坏二维码

免费开源二维码修复工具:QRazyBox终极指南,轻松拯救损坏二维码 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否遇到过这样的困境:重要的二维码因为打…

2026/8/6 15:15:31 阅读更多 →
如何彻底卸载OneDrive?Windows系统顽固组件完整卸载指南

如何彻底卸载OneDrive?Windows系统顽固组件完整卸载指南

如何彻底卸载OneDrive?Windows系统顽固组件完整卸载指南 【免费下载链接】OneDrive-Uninstaller Batch script to completely uninstall OneDrive in Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/on/OneDrive-Uninstaller OneDrive卸载、Wi…

2026/8/6 15:15:31 阅读更多 →
Pygame游戏开发入门:从零开始创建2D游戏

Pygame游戏开发入门:从零开始创建2D游戏

1. 为什么选择Pygame作为游戏开发入门2005年我在大学计算机实验室第一次接触到Pygame,当时想用Python做个简单的贪吃蛇游戏。相比其他游戏引擎,Pygame最吸引我的是它极低的学习曲线——只需要几十行代码就能让一个彩色方块在屏幕上移动。这种即时反馈对编…

2026/8/6 15:15:31 阅读更多 →
Unity模型边缘锯齿优化:5大误区解析与实战解决方案

Unity模型边缘锯齿优化:5大误区解析与实战解决方案

1. 项目概述:从“狗牙”到“丝滑”的必经之路刚接触Unity开发的朋友,尤其是从2D或者纯逻辑编程转过来的,十有八九会在某个深夜对着屏幕上自己精心制作的3D模型发出灵魂拷问:“这模型的边缘怎么全是锯齿,跟狗啃的一样&a…

2026/8/6 15:15:31 阅读更多 →
3分钟学会:如何在Windows电脑上直接安装APK文件

3分钟学会:如何在Windows电脑上直接安装APK文件

3分钟学会:如何在Windows电脑上直接安装APK文件 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想过在Windows电脑上直接运行安卓应用,…

2026/8/6 15:14:31 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →