codecamp

焦点事件

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

说明
  • 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。

  • 目前仅支持通过外接键盘的tab键、方向键触发。

  • 存在默认交互逻辑的组件例如Button、TextInput等,默认即为可获焦,Text、Image等组件则默认状态为不可获焦,不可获焦状态下,无法触发焦点事件,需要设置focusable属性为true才可触发。

事件

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

示例

  1. // xxx.ets
  2. @Entry
  3. @Component
  4. struct FocusEventExample {
  5. @State oneButtonColor: string = '#FFC0CB'
  6. @State twoButtonColor: string = '#87CEFA'
  7. @State threeButtonColor: string = '#90EE90'
  8. build() {
  9. Column({ space: 20 }) {
  10. // 通过外接键盘的上下键可以让焦点在三个按钮间移动,按钮获焦时颜色变化,失焦时变回原背景色
  11. Button('First Button')
  12. .backgroundColor(this.oneButtonColor)
  13. .width(260)
  14. .height(70)
  15. .fontColor(Color.Black)
  16. .focusable(true)
  17. .onFocus(() => {
  18. this.oneButtonColor = '#FF0000'
  19. })
  20. .onBlur(() => {
  21. this.oneButtonColor = '#FFC0CB'
  22. })
  23. Button('Second Button')
  24. .backgroundColor(this.twoButtonColor)
  25. .width(260)
  26. .height(70)
  27. .fontColor(Color.Black)
  28. .focusable(true)
  29. .onFocus(() => {
  30. this.twoButtonColor = '#FF0000'
  31. })
  32. .onBlur(() => {
  33. this.twoButtonColor = '#87CEFA'
  34. })
  35. Button('Third Button')
  36. .backgroundColor(this.threeButtonColor)
  37. .width(260)
  38. .height(70)
  39. .fontColor(Color.Black)
  40. .focusable(true)
  41. .onFocus(() => {
  42. this.threeButtonColor = '#FF0000'
  43. })
  44. .onBlur(() => {
  45. this.threeButtonColor = '#90EE90'
  46. })
  47. }.width('100%').margin({ top: 20 })
  48. }
  49. }

按键事件
鼠标事件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

媒体组件

像素

枚举

类型

接口

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }