新闻详情

新闻详情

首页 / 资讯中心 / 详情

自由窗口切回前台选中项变了:窗口焦点和业务焦点为什么必须分开

发布时间:2026/9/26 16:34:28来源:尧图网络
自由窗口切回前台选中项变了:窗口焦点和业务焦点为什么必须分开
自由窗口切回前台选中项变了窗口焦点和业务焦点为什么必须分开两个自由窗口并排工作用户在左侧列表选中一条记录点击右侧浏览器查资料再切回应用列表高亮却跳到了第一项。官方自由窗口文档指出窗口被点击或触摸后会提升 Z 轴并获取焦点。窗口重新获得焦点是系统事实但它不等于用户重新选择了第一条业务数据。验证边界本文依据华为开发者官网截至 2026-09-25 可访问的资料整理。文中的状态机、去重器和坐标计算已经在 Node.js 宿主环境执行断言当前本机仍是 API 24 SDK且没有连接 HDC 真机因此不把这些断言写成 API 26 编译或真机实测。涉及窗口、拖拽和跨设备能力的正式交付仍需在 API 26 SDK、模拟器或对应真机上补齐接口编译、交互录像与日志证据。重复执行从哪里来很多页面把onWindowFocus、组件onFocus和业务 selectedId 绑在一起窗口激活就给第一个可聚焦元素焦点焦点回调又顺便更新选中项。鼠标点击标题栏、AltTab 返回或弹窗关闭都会触发这条链导致业务状态无故改变。必须分别复现窗口失焦、键盘焦点迁移和鼠标选中才能看清谁误写了 selectedId。幂等边界怎么定义建立三层状态windowActive 只控制动画和资源恢复keyboardFocusId 只服务键盘与无障碍导航selectedId 表示用户明确选择的业务对象。窗口重新激活时恢复上次键盘焦点但只有点击、Enter 或业务命令可以改变 selectedId。若原焦点元素已删除寻找最近合法焦点也不自动改业务选择。interface FocusState { windowActive:boolean; keyboardFocusId?:string; selectedId?:string } export function onWindowActive(s:FocusState,active:boolean):FocusState { return { ...s, windowActive:active }; } export function onKeyboardFocus(s:FocusState,id:string):FocusState { return { ...s, keyboardFocusId:id }; } export function onUserSelect(s:FocusState,id:string):FocusState { return { ...s, selectedId:id, keyboardFocusId:id }; }案例一点击窗口标题栏返回应用标题栏点击只让窗口激活不应触发列表第一项的业务选择。页面恢复资源后把键盘焦点放回之前的控件若用户没有继续操作详情区仍显示原 selectedId。日志应区分 WINDOW_ACTIVE 与 USER_SELECT。案例二选中项被删除后重新获得焦点业务层先明确 selectedId 失效并选择空状态或相邻项焦点层再寻找可聚焦控件。不要让焦点框移动反过来决定删除后的业务对象否则鼠标、键盘和屏幕朗读会产生不同结果。失败、重试与回滚观察项容易写错更可靠的处理窗口激活激活就选第一项只恢复资源和视觉状态键盘焦点焦点等于选中独立记录可导航控件业务选中任意 focus 回调都写入只接受明确用户意图异常恢复找不到焦点就清空页面分别修复焦点与业务状态三层状态分离后自由窗口、弹窗和多显示器切换都不会随意改业务选择。封装统一的状态迁移函数还能用事件序列测试 AltTab、鼠标和键盘三种路径。可复用门禁窗口激活不会修改 selectedId。键盘焦点与鼠标高亮含义明确。删除控件后分别恢复焦点和业务状态。日志标记焦点事件来源。触控、键鼠和屏幕朗读路径结果一致。官方资料与适用范围自由窗口简介多设备通用适配指南自由窗口让焦点变化变得频繁。只有把“窗口正在使用”“键盘在哪里”和“用户选了什么”分开任务才能在来回切换中保持连续。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Ubuntu + DeepSeek Harness 远程开发环境搭建实战:从驱动配置到多智能体编排 2026/9/26 17:15:03

Ubuntu + DeepSeek Harness 远程开发环境搭建实战:从驱动配置到多智能体编排

上个月我接了一个多智能体编排的活儿,需要频繁跑大模型推理做效果对比。本地笔记本根本没有独立显卡,跑一次实验风扇狂转半小时,模型还在转圈,整个人都麻了。后来公司机房腾出一台闲置的 Ubuntu 工作站,我花了两三个晚…

阅读更多 →
Ubuntu+Docker+VSCode搭建DeepSeek Harness远程开发环境指南 2026/9/26 17:14:56

Ubuntu+Docker+VSCode搭建DeepSeek Harness远程开发环境指南

1. 整体方案:为什么是 Ubuntu Docker VSCode 这条链路 先说结论:如果你想要一个能跑 AI 智能体的远程开发环境,Ubuntu 服务器加 Docker 加 DeepSeek Harness,再通过 VSCode SSH 连上去写代码,这套组合是目前最稳、最…

阅读更多 →
WorkBuddy接入U2-Flash完整教程:1亿Token免费领,解决配额焦虑 2026/9/26 17:14:56

WorkBuddy接入U2-Flash完整教程:1亿Token免费领,解决配额焦虑

上周我在客户现场重构一个老项目,下午四点半,主力编码助手的额度准时用尽,编辑器里很应景地弹出一行your access token could not be refreshed,然后整个 IDE 的 AI 能力全部沉默。那种手里的活干到一半、后面还有一堆东西等着改的…

阅读更多 →
ASP.NET邮件收发系统毕设指南:SMTP发送与POP3接收协议解析 2026/9/26 17:14:56

ASP.NET邮件收发系统毕设指南:SMTP发送与POP3接收协议解析

简介:这是一份基于ASP.NET与C#的C/S架构电子邮件简单收发系统毕业设计资源,面向计算机专业毕业生或正在制作邮件客户端课题的开发人员。系统基于SMTP和POP3协议,整体采用C/S分层结构,完整实现用户注册、邮件单个发送与群发、邮件收…

阅读更多 →
Hadoop 3.3.6集群搭建实战:从伪分布式到完全分布式部署 2026/9/26 17:14:56

Hadoop 3.3.6集群搭建实战:从伪分布式到完全分布式部署

简介:面向大数据开发与运维人员的 Hadoop 3.3.6 二进制安装包,来自 Apache 开源分布式框架,可直接用于搭建存储与计算环境,适合在本地或服务器上快速部署。压缩包体积约 696MB,文件数量约 2000 个,其中 HTM…

阅读更多 →
2026第二十三届华为杯数学建模竞赛ABCDEF题思路代码解析 2026/9/26 17:14:56

2026第二十三届华为杯数学建模竞赛ABCDEF题思路代码解析

2026第二十三届华为杯研究生数学建模竞赛ABCDEF题思路代码解析,这篇我写了很多年了。每年赛题一出来,总有人私信问我A题是不是该用物理仿真、B题是不是直接套排队论、C题是不是无脑上机器学习……这些问题其实反映了大多数人根本没有一个系统性的选题和破…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉