0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙ArkTS声明式开发:跨平台支持列表【焦点事件】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-05-27 22:17 次阅读

焦点事件

焦点事件指页面焦点在可获焦组件间移动时触发的事件,组件可使用焦点事件来处理相关逻辑。

说明:
开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

  • 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
  • 目前仅支持通过外接键盘的tab键、方向键触发。
  • 存在默认交互逻辑的组件例如Button、TextInput等,默认即为可获焦,Text、Image等组件则默认状态为不可获焦,不可获焦状态下,无法触发焦点事件,需要设置focusable属性为true才可触发。

事件

名称支持冒泡功能描述
onFocus(event: () => void)当前组件获取焦点时触发的回调。
onBlur(event:() => void)当前组件失去焦点时触发的回调。

示例

搜狗高速浏览器截图20240326151450.png

`HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿`

// xxx.ets
@Entry
@Component
struct FocusEventExample {
  @State oneButtonColor: string = '#FFC0CB'
  @State twoButtonColor: string = '#87CEFA'
  @State threeButtonColor: string = '#90EE90'

  build() {
    Column({ space: 20 }) {
      // 通过外接键盘的上下键可以让焦点在三个按钮间移动,按钮获焦时颜色变化,失焦时变回原背景色
      Button('First Button')
        .backgroundColor(this.oneButtonColor)
        .width(260)
        .height(70)
        .fontColor(Color.Black)
        .focusable(true)
        .onFocus(() = > {
          this.oneButtonColor = '#FF0000'
        })
        .onBlur(() = > {
          this.oneButtonColor = '#FFC0CB'
        })
      Button('Second Button')
        .backgroundColor(this.twoButtonColor)
        .width(260)
        .height(70)
        .fontColor(Color.Black)
        .focusable(true)
        .onFocus(() = > {
          this.twoButtonColor = '#FF0000'
        })
        .onBlur(() = > {
          this.twoButtonColor = '#87CEFA'
        })
      Button('Third Button')
        .backgroundColor(this.threeButtonColor)
        .width(260)
        .height(70)
        .fontColor(Color.Black)
        .focusable(true)
        .onFocus(() = > {
          this.threeButtonColor = '#FF0000'
        })
        .onBlur(() = > {
          this.threeButtonColor = '#90EE90'
        })
    }.width('100%').margin({ top: 20 })
  }
}

focus

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2351

    浏览量

    42849
收藏 人收藏

    评论

    相关推荐

    鸿蒙ArkTS的起源和简介

    新的声明开发范式,基于Skia的自绘制引擎构建可平台的独立的渲染能力。这是一种较为创新的方案,不过也有几点不足: Dart语言生态。尽管
    发表于 01-16 16:23

    HarmonyOS/OpenHarmony应用开发-ArkTS声明开发范式

    基于ArkTS声明开发范式的方舟开发框架是一套开发极简、高性能、
    发表于 01-17 15:09

    鸿蒙开发ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了
    的头像 发表于 01-24 16:44 2265次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>之<b class='flag-5'>ArkTS</b>基础知识

    鸿蒙ArkTS声明开发平台支持列表【点击事件】

    组件被点击时触发的事件。
    的头像 发表于 05-26 21:25 709次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【点击事件】

    鸿蒙ArkTS声明开发平台支持列表【触摸事件】

    当手指在组件上按下、滑动、抬起时触发。
    的头像 发表于 05-27 09:34 493次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【触摸事件】

    鸿蒙ArkTS声明开发平台支持列表【按键事件】

    按键事件指组件与键盘、遥控器等按键设备交互时触发的事件,适用于所有可获焦组件,例如Button。对于Text,Image等默认不可获焦的组件,可以设置focusable属性为true后使用按键事件。
    的头像 发表于 05-28 18:12 873次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【按键事件】

    鸿蒙ArkTS声明开发平台支持列表【组件快捷键事件】

    开发者可以设置组件的自定义组合键,组合键的行为与click行为一致,组件在未获得焦点状态下也可以响应自定义组合键,每个组件可以设置多个组合键。
    的头像 发表于 05-28 15:49 464次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【组件快捷键事件】

    鸿蒙ArkTS声明开发平台支持列表【显隐控制】 通用属性

    控制当前组件显示或隐藏。注意,即使组件处于隐藏状态,在页面刷新时仍存在重新创建过程,因此当对性能有严格要求时建议使用[条件渲染]代替。 默认值:Visibility.Visible 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-03 14:46 592次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【显隐控制】 通用属性

    鸿蒙ArkTS声明开发平台支持列表【禁用控制】 通用属性

    组件是否可交互,可交互状态下响应[点击事件]、[触摸事件]、[拖拽事件]、[按键事件]、[焦点事件]和[鼠标事件]。
    的头像 发表于 06-03 10:21 324次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【禁用控制】 通用属性

    鸿蒙ArkTS声明开发平台支持列表【形状裁剪】 通用属性

    参数为相应类型的组件,按指定的形状对当前组件进行裁剪;参数为boolean类型时,设置是否按照父容器边缘轮廓进行裁剪。 默认值:false 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-04 15:22 476次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【形状裁剪】 通用属性

    鸿蒙ArkTS声明开发平台支持列表【菜单控制】 通用属性

    为组件绑定弹出菜单,弹出菜单以垂直列表形式显示菜单项,可通过长按、点击或鼠标右键触发。
    的头像 发表于 06-06 09:17 685次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【菜单控制】 通用属性

    鸿蒙ArkTS声明开发平台支持列表【多态样式】 通用属性

    设置组件不同状态的样式。 从API version 9开始,该接口支持ArkTS卡片中使用。
    的头像 发表于 06-07 09:48 405次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【多态样式】 通用属性

    鸿蒙ArkTS声明开发平台支持列表【分布迁移标识】 通用属性

    组件的分布迁移标识,指明了该组件在分布迁移场景下可以将特定状态恢复到对端设备。
    的头像 发表于 06-07 21:15 401次阅读

    鸿蒙ArkTS声明开发平台支持列表【TapGesture】 基础手势

    支持单击、双击和多次点击事件的识别。
    的头像 发表于 06-17 14:19 353次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b>【TapGesture】 基础手势

    鸿蒙ArkTS声明开发平台支持列表 组合手势

    手势识别组合,即多种手势组合为复合手势,支持连续识别、并行识别和互斥识别。
    的头像 发表于 06-19 09:33 418次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>ArkTS</b><b class='flag-5'>声明</b><b class='flag-5'>式</b><b class='flag-5'>开发</b>:<b class='flag-5'>跨</b><b class='flag-5'>平台</b><b class='flag-5'>支持</b><b class='flag-5'>列表</b> 组合手势