HarmonyOS鸿蒙NEXT应用元服务开发控件位置调整场景与重新设置新焦点位置的场景

HarmonyOS鸿蒙NEXT应用元服务开发控件位置调整场景与重新设置新焦点位置的场景 一、控件位置调整场景

移动过程中需要实时播报即将移动到的位置,新位置的播报会打断老位置的播报,放置到确定位置后,需要再播报已经放置的位置信息,尽量保证视障用户耳朵听到的信息和我们通过眼睛看到的信息是一致的。例如,桌面图标被托起时,会播报已托起,移动的过程中,根据即将放置的位置播报“移至第几行,第几列”,放置后播报“已放至第几行,第几列”。应用可调用主动播报的接口来进行主动播报。

二、重新设置新焦点位置的场景

适用场景:当前焦点所在的控件消失或者隐藏后,需要重新设置新的焦点位置

说明:一般情况下,新焦点应该在原控件位置的下一个控件上,不应该跳变到前面的控件。应用可以调用主动聚焦的接口对想要聚焦的组件进行主动聚焦。

示例代码:

build() {
    Column() {
        Button(`待聚焦组件`).id("abc345")
    }
}
import accessibility from '@ohos.accessibility';

let eventInfo: accessibility.EventInfo = ({
  type: 'requestFocusForAccessibility',
  bundleName: 'com.example.pagesrouter',
  triggerAction: 'common',
  customId: 'abc345'
});

accessibility.sendAccessibilityEvent(eventInfo).then(() => {
console.info(`test123 Succeeded in send event, eventInfo is ${JSON.stringify(eventInfo)}`);
});
属性 类型 说明
type EventType 主动聚焦事件类型 requestFocusForAccessibility
bundleName string 目标应用名 当前应用包名
triggerAction Action 触发事件的Action click或其他都不会有任何影响
customId string 组件id abc345

本文主要引用官方文档材料基API 12 Release


更多关于HarmonyOS鸿蒙NEXT应用元服务开发控件位置调整场景与重新设置新焦点位置的场景的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙NEXT应用元服务开发中,控件位置调整场景主要涉及通过ComponentsetPosition方法动态改变控件在界面中的位置。开发者可以根据应用逻辑或用户交互需求,实时调整控件的xy坐标,以实现动态布局效果。例如,在响应滑动或拖拽事件时,更新控件位置。

重新设置新焦点位置的场景则与FocusManager相关。当界面中的焦点控件发生变化时,开发者可以通过FocusManagerrequestFocus方法,将焦点转移到特定控件上。这种情况常见于用户通过键盘或方向键导航时,需要根据当前焦点位置和用户操作,重新指定下一个获得焦点的控件。

这两种场景在元服务开发中均需结合ArkUI框架,利用其提供的布局和焦点管理能力,确保控件位置和焦点状态与用户交互一致。开发者需在代码中明确处理位置和焦点的变化逻辑,以提供流畅的用户体验。

更多关于HarmonyOS鸿蒙NEXT应用元服务开发控件位置调整场景与重新设置新焦点位置的场景的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙NEXT应用元服务开发中,控件位置调整的场景通常涉及用户交互或动态布局变化。例如,当用户点击某个按钮或进行滑动操作时,可能需要重新定位控件以提供更好的用户体验。重新设置新焦点位置的场景则适用于当某个控件失去焦点或需要将焦点转移到另一个控件时,如输入框验证失败后,焦点自动跳转到错误提示框。开发者可以通过requestFocus方法或布局调整API实现这些功能。

回到顶部