焦点控制

焦点控制

在 HarmonyOS 应用开发中,焦点控制对于实现良好的用户交互体验至关重要。该网页文档主要介绍了 HarmonyOS 中与焦点控制相关的一系列属性、方法和组件,用于管理组件的获焦能力、走焦顺序、默认焦点设置以及焦点框样式等,从而实现用户通过键盘(如 tab 键、方向键)或触摸操作在应用界面中进行便捷的焦点切换和交互操作,适用于从 API Version 8 开始的版本,部分功能从 API version 11 或 12 开始支持,且在元服务中有相应的 API 应用场景。

主要属性及方法介绍

  1. 组件获焦相关属性
    • focusable:设置组件是否可获焦,如 Button 等默认可获焦,Text 等默认不可获焦,不可获焦时无法触发焦点事件。
    • tabIndex:自定义组件 tab 键走焦能力,大于 0 时按其值从小到大循环走焦,等于 0 时按预设规则走焦,小于 0(通常为 -1)表示可聚焦但不能通过 tab 键访问,且与focusScopeId不能混用,UiExtension组件未适配该属性。
    • defaultFocus:设置组件是否为页面初始默认焦点,仅初次创建页面第一次进入时生效,若页面无此设置,API version 11 及之前首个可获焦非容器组件为默认焦点,之后版本页面根容器为默认焦点,多个设置时以组件树深度遍历第一个为准。
    • groupDefaultFocus:需与tabIndex联合使用,设置组件在所在容器获焦时是否为默认焦点,仅初次创建容器节点第一次获焦时生效,多个设置时以组件树深度遍历第一个为准。
    • focusOnTouch:设置组件是否支持点击获焦,仅在组件可点击时有效。
  2. 焦点控制相关方法及属性
    • requestFocus:全局接口,可使焦点转移到指定组件,但非当前帧生效,建议使用FocusController中的requestFocus。支持焦点控制的组件包括 TextInput、TextArea 等,焦点事件仅在真机上显示运行效果。
    • focusBox:从 API version 12 开始支持,用于设置组件系统焦点框样式,包括相对组件边缘距离、颜色和宽度等,仅影响走焦状态下展示系统焦点框的组件。
    • focusScopePriority:从 API version 12 开始支持,设置组件在指定容器内获焦优先级,需配合focusScopeId使用,优先级有 AUTO(默认)、PRIOR(优先获焦)、PREVIOUS(上一次容器整体失焦时获焦节点优先级),容器整体获焦和非整体获焦时有不同的获焦规则。
    • focusScopeId:从 API version 12 开始支持,设置容器组件 id 标识及是否为焦点组,单个层级页面下 id 全局唯一,焦点组不可嵌套和重复配置,且不能和tabIndex混用,焦点组内只能通过方向键走焦,有特定的走焦规则。
posted @   flfljh2024  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示