HarmonyOS Button组件无法触发获取焦点和失去焦点事件

// 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 })
  }
}
HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

目前API可以使用defaultFocus(true)来设置当前组件是否为当前页面上的默认焦点,主动获焦/失焦使用focusControl中的方法requestFocus,而走焦需要按下TAB键来触发走焦,具体可参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-events-focus-event-V5

分享
微博
QQ
微信
回复
1天前
相关问题
焦点事件onBlur/onFocus回调无法触发
2046浏览 • 1回复 待解决
ets的text input手动控制获得失去焦点
4680浏览 • 1回复 待解决
HarmonyOS 主动获取组件焦点
66浏览 • 1回复 待解决
HarmonyOS TextInput无法取消焦点
338浏览 • 1回复 待解决
如何判断音频焦点获取丢失?
6224浏览 • 1回复 待解决
HarmonyOS 输入框获取焦点无法弹出
15浏览 • 1回复 待解决
TextInput组件获取焦点的几种场景
2701浏览 • 1回复 待解决
HarmonyOS 主动获取焦点失败
359浏览 • 1回复 待解决
HarmonyOS 获取焦点api提示异常
17浏览 • 1回复 待解决
HarmonyOS TextInput自动获取焦点问题
110浏览 • 1回复 待解决
HarmonyOS 焦点问题
14浏览 • 1回复 待解决