openharmony 鸿蒙 window-focus-guide

2026-08-25 浏览 (1)

窗口焦点

场景介绍

窗口焦点(Window Focus) 是指在某一屏幕组内,当前能够接收键盘事件的窗口所具有的状态。系统通过焦点机制确保用户输入被正确路由到目标界面组件。

在一个屏幕组中,有且仅有一个窗口处于焦点状态,该窗口被称为焦点窗口(Focused Window) 。焦点窗口不仅能够响应键盘输入,还可在资源调度中享有更高优先级,例如在渲染、任务执行等方面获得系统倾斜。只有当窗口成功获取焦点后,系统方可拉起输入法进行输入。

基本概念和机制介绍

屏幕组

屏幕组是系统中一组逻辑上关联的显示区域,每个屏幕组独立维护其窗口栈和焦点状态。每个屏幕组内有且仅有一个焦点窗口,不同屏幕组之间的焦点互不影响。

窗口焦点状态

窗口焦点状态(Focus State) 表示当前窗口是否能接收用户输入事件(如点击、按键等)。

  • 主要状态如下所示:

    • WINDOW_ACTIVE:窗口已获焦,可响应用户操作。

    • WINDOW_INACTIVE:窗口失焦,无法接收输入。

  • 典型场景:应用启动后自动获焦;切换到其他应用时原窗口失焦。

  • 可通过on('windowEvent')接口监听窗口焦点状态的变化。

窗口激活态管理

窗口激活态(Highlight State) 表示当前窗口是否处于“视觉高亮”状态,“视觉高亮”是一种UI反馈机制,通过改变窗口的外观(如标题栏颜色、边框样式、透明度、阴影等)来向用户传达:这个窗口当前是活跃的、可交互的,或者正在被系统强调。

  • 窗口激活态支持应用窗口(包括主窗口和子窗口),不支持系统窗口。

  • 窗口处于激活态不等于窗口获焦;但获焦窗口一定处于激活态。

  • 具有独占激活和非独占激活两种模式。

    • 独占激活模式:仅一个窗口处于高亮,该应用的其他窗口自动失去高亮。

    • 非独占激活模式:应用内多个窗口(如父窗口和子窗口)同时高亮。

  • 独占激活典型场景:多子窗应用中,仅当前操作的子窗标题栏处于高亮。

  • 非独占激活典型场景:在专业设计工具中,用户同时操作主视图和参数设置面板,系统允许这两个窗口同时高亮,以表明它们都处于活跃交互状态。

  • 可通过on('windowHighlightChange')接口监听窗口激活态的变化。

焦点相关开发场景

功能典型场景对应接口
监听窗口焦点变化监听窗口焦点变化,以在窗口失焦时控制后台行为,如暂停动画、释放资源等。on('windowEvent')
监听窗口激活态变化监听窗口激活态变化,用于动态调整UI样式,如标题栏颜色、边框等。on('windowHighlightChange')
设置窗口是否可获焦控制某个窗口是否参与焦点竞争。例如横幅消息通知,设置不可获焦,不打断用户输入法输入setWindowFocusable()
在同应用内转移窗口焦点进行应用内部多个窗口之间的焦点切换,确保流畅的焦点导航体验。例如,多窗口界面切换编辑窗口等。shiftAppWindowFocus()
判断窗口是否获焦进行窗口获焦状态的判断,可用于防止非活跃窗口执行敏感操作。isFocused()
设置窗口是否独占激活设置窗口为独占激活时,可用于聚焦窗口操作,提升用户注意力。
设置窗口为非独占激活时,可用于多标签页设计,支持多个窗口同时保持高亮。
setExclusivelyHighlighted()
查询窗口是否为激活态判断当前窗口是否处于视觉高亮,可用于UI状态同步等场景。isWindowHighlighted()
显示当前窗口可用于显示主窗口、子窗口、全局悬浮窗及系统窗口。
如果传入focusOnShow: false,窗口显示时不可获焦。
showWindow(options: ShowWindowOptions)

说明:

  • 针对监听类接口:请使用对应的off()接口在页面销毁时移除相关监听,以避免内存泄露。

  • 页面加载优于显示:在调用showWindow()显示窗口等接口时,请确保已使用loadContent()或setUIContent等接口完成页面的加载。

  • 合理使用窗口独占激活模式:避免滥用setExclusivelyHighlighted()导致用户体验割裂。

  • 状态查询和监听接口的结合使用:首次进入页面可使用isWindowHighlighted()/isFocused()获取初始状态,再通过对应的on('windowHighlightChange')/on('windowEvent')接口监听后续变化以实现相关适配和操作。

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 window-zorder-guide

openharmony 鸿蒙 application-window-stage

openharmony 鸿蒙 system-window-stage-sys

openharmony 鸿蒙 launch-page-resource-config

openharmony 鸿蒙 launch-page-config

openharmony 鸿蒙 native-window-event-filter

openharmony 鸿蒙 window-faqs

openharmony 鸿蒙 Readme-CN

openharmony 鸿蒙 window-overview

openharmony 鸿蒙 application-window-fa

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/eojtQAOd