当前位置: 首页 > news >正文

【HarmonyOS NEXT】鸿蒙 如何在包含web组件的页面 让默认焦点有效

页面包含web组件Button组件等,把页面的默认焦点放到Button组件上,不起效果。

因为web组件默认会在组件加载完成后获取焦点;

可以在web的网页加载完成时onPageEnd回调中,将设置默认获焦的组件通过focusControl.requestFocus方法主动让焦点转移至参数指定的组件上

focusControl9+

焦点控制模块

requestFocus9+

requestFocus(value: string): boolean

方法语句中可使用的全局接口,调用此接口可以主动让焦点转移至参数指定的组件上。

参数:

名称类型必填描述
valuestring目标组件使用接口key(value: string)绑定的字符串。

返回值:

类型说明
boolean返回是否成功给目标组件申请到焦点。若参数指向的目标组件存在,且目标组件可获焦,则返回true,否则返回false。

说明

支持焦点控制的组件:TextInput、TextArea、Search、Button、Text、Image、List、Grid。焦点事件当前仅支持在真机上显示运行效果。

示例

// requestFocus.ets
import promptAction from '@ohos.promptAction';@Entry
@Component
struct RequestFocusExample {@State idList: string[] = ['A', 'B', 'C', 'D', 'E', 'F', 'LastPageId']@State selectId: string = 'LastPageId'build() {Column({ space:20 }){Row({space: 5}) {Button("id: " + this.idList[0] + " focusable(false)").width(200).height(70).fontColor(Color.White).key(this.idList[0]).focusable(false)Button("id: " + this.idList[1]).width(200).height(70).fontColor(Color.White).key(this.idList[1])}Row({space: 5}) {Button("id: " + this.idList[2]).width(200).height(70).fontColor(Color.White).key(this.idList[2])Button("id: " + this.idList[3]).width(200).height(70).fontColor(Color.White).key(this.idList[3])}Row({space: 5}) {Button("id: " + this.idList[4]).width(200).height(70).fontColor(Color.White).key(this.idList[4])Button("id: " + this.idList[5]).width(200).height(70).fontColor(Color.White).key(this.idList[5])}Row({space: 5}) {Select([{value: this.idList[0]},{value: this.idList[1]},{value: this.idList[2]},{value: this.idList[3]},{value: this.idList[4]},{value: this.idList[5]},{value: this.idList[6]}]).value(this.selectId).onSelect((index: number) => {this.selectId = this.idList[index]})Button("RequestFocus").width(200).height(70).fontColor(Color.White).onClick(() => {let res = focusControl.requestFocus(this.selectId)      // 使选中的this.selectId的组件获焦if (res) {promptAction.showToast({message: 'Request success'})} else {promptAction.showToast({message: 'Request failed'})}})}}.width('100%').margin({ top:20 })}
}

示意图:

按下TAB键,激活焦点态显示。

申请不存在的组件获焦:

申请不可获焦的组件获焦:

申请存在且可获焦的组件获焦:

http://www.lryc.cn/news/376130.html

相关文章:

  • mysql常用参数配置详解my.cnf my.ini
  • GlusterFS企业分布式存储
  • SSH生成SSH密钥(公钥和私钥)
  • 阶段性总结:如何快速上手一个新的平台或者技术
  • kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数
  • 第十二章:会话控制
  • 【LeetCode滑动窗口算法】长度最小的子数组 难度:中等
  • MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
  • Day39
  • Nginx之HTTP模块详解
  • JCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断
  • 最新Prompt预设词分享,DALL-E3文生图+文档分析
  • 基于SpringBoot+Vue会所产后护理系统设计和实现
  • Linux中的EINTR和EAGAIN错误码
  • 用户需求分析揭秘:最佳实践与策略
  • 批量创建文件夹 就是这么简单 一招创建1000+文件夹
  • LogicFlow 学习笔记——8. LogicFlow 基础 事件 Event
  • Nginx缓存之代理缓存配置
  • 【Android】使用SeekBar控制数据的滚动
  • 新能源汽车的能源动脉:中国星坤汽车电缆在新能源汽车电气化中的应用!
  • AVL许可证查询系统
  • 四个步骤,帮你成为价值导向型项目经理
  • Python3 使用 clickhouse-connect 操作 clickhouse
  • Python脚手架系列-DrissionPage
  • Java中如何调用mysql中函数
  • Huggingface-cli 登录最新版(2024)
  • Java学习 - Docker管理和容器命令 实例
  • 下载工程resources目录下的模板excel文件
  • 音频基础知识和音频指标
  • 使用Vue CLI在其他磁盘创建项目出现错误及解决