Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
2359769c
D
Docs
项目概览
OpenHarmony
/
Docs
接近 2 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
2359769c
编写于
10月 09, 2022
作者:
O
openharmony_ci
提交者:
Gitee
10月 09, 2022
浏览文件
操作
浏览文件
下载
差异文件
!10335 示例代码整改3
Merge pull request !10335 from luoying_ace/master
上级
ca1c90eb
82e22f04
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
272 addition
and
183 deletion
+272
-183
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md
...ation-dev/reference/arkui-ts/ts-universal-events-click.md
+30
-19
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md
...n-dev/reference/arkui-ts/ts-universal-events-drag-drop.md
+92
-76
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-key.md
...ication-dev/reference/arkui-ts/ts-universal-events-key.md
+9
-11
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-show-hide.md
...n-dev/reference/arkui-ts/ts-universal-events-show-hide.md
+17
-11
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-touch.md
...ation-dev/reference/arkui-ts/ts-universal-events-touch.md
+31
-15
zh-cn/application-dev/reference/arkui-ts/ts-universal-focus-event.md
...cation-dev/reference/arkui-ts/ts-universal-focus-event.md
+31
-28
zh-cn/application-dev/reference/arkui-ts/ts-universal-mouse-key.md
...lication-dev/reference/arkui-ts/ts-universal-mouse-key.md
+62
-23
未找到文件。
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-click.md
浏览文件 @
2359769c
# 点击事件
点击事件指
组件被点击时触发的事件。
组件被点击时触发的事件。
> **说明:**
>
...
...
@@ -11,17 +11,18 @@
| 名称 | 支持冒泡 | 功能描述 |
| ---------------------------------------- | ---- | --------------------------------- |
| onClick(event:
(event?:
ClickEvent)
=
>
void) | 否 | 点击动作触发该
方法调用,event参数见ClickEvent介绍
。 |
| onClick(event:
(event?:
ClickEvent)
=
>
void) | 否 | 点击动作触发该
回调,event返回值见ClickEvent对象说明
。 |
## ClickEvent对象说明
|
属性
名称 | 类型 | 描述 |
| 名称 | 类型 | 描述 |
| ------------------- | ------------------------------------ | -------------------------------------------------------- |
| screenX | number | 点击点相对于应用窗口左上角的X坐标。 |
| screenY | number | 点击点相对于应用窗口左上角的Y坐标。 |
| x | number | 点击点相对于被点击元素左上角的X坐标。 |
| y | number | 点击点相对于被点击元素左上角的Y坐标。 |
| target
<sup>
8+
</sup>
|
[
EventTarget
](
#eventtarget8对象说明
)
| 被点击元素对象。 |
| timestamp | number | 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。 |
| screenX | number | 点击位置相对于应用窗口左上角的X坐标。 |
| screenY | number | 点击位置相对于应用窗口左上角的Y坐标。 |
| x | number | 点击位置相对于被点击元素左上角的X坐标。 |
| y | number | 点击位置相对于被点击元素左上角的Y坐标。 |
| timestamp
<sup>
8+
</sup>
| number | 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。 |
| target
<sup>
8+
</sup>
|
[
EventTarget
](
#eventtarget8对象说明
)
| 触发事件的元素对象显示区域。 |
| source
<sup>
8+
</sup>
|
[
SourceType
](
ts-gesture-settings.md#sourcetype枚举说明
)
| 事件输入设备。 |
## EventTarget<sup>8+</sup>对象说明
...
...
@@ -38,19 +39,29 @@
@
Entry
@
Component
struct
ClickExample
{
@
State
text
:
string
=
''
@
State
text
:
string
=
''
;
build
()
{
Column
()
{
Button
(
'
Click
'
).
backgroundColor
(
0x2788D9
).
width
(
100
).
height
(
40
)
.
onClick
((
event
:
ClickEvent
)
=>
{
console
.
info
(
this
.
text
=
'
Click Point:
'
+
'
\n
screenX:
'
+
event
.
screenX
+
'
\n
screenY:
'
+
event
.
screenY
+
'
\n
x:
'
+
event
.
x
+
'
\n
y:
'
+
event
.
y
+
'
\n
target:
'
+
'
\n
component globalPos:(
'
+
event
.
target
.
area
.
globalPosition
.
x
+
'
,
'
+
event
.
target
.
area
.
globalPosition
.
y
+
'
)
\n
width:
'
+
event
.
target
.
area
.
width
+
'
\n
height:
'
+
event
.
target
.
area
.
height
)
})
Text
(
this
.
text
).
padding
(
15
)
}.
height
(
350
).
width
(
'
100%
'
).
padding
(
10
)
Row
({
space
:
20
})
{
Button
(
'
Click
'
).
width
(
100
).
height
(
40
)
.
onClick
((
event
:
ClickEvent
)
=>
{
this
.
text
=
'
Click Point:
'
+
'
\n
screenX:
'
+
event
.
screenX
+
'
\n
screenY:
'
+
event
.
screenY
+
'
\n
x:
'
+
event
.
x
+
'
\n
y:
'
+
event
.
y
+
'
\n
target:
'
+
'
\n
component globalPos:(
'
+
event
.
target
.
area
.
globalPosition
.
x
+
'
,
'
+
event
.
target
.
area
.
globalPosition
.
y
+
'
)
\n
width:
'
+
event
.
target
.
area
.
width
+
'
\n
height:
'
+
event
.
target
.
area
.
height
+
'
\n
timestamp
'
+
event
.
timestamp
;
})
Button
(
'
Click
'
).
width
(
200
).
height
(
50
)
.
onClick
((
event
:
ClickEvent
)
=>
{
this
.
text
=
'
Click Point:
'
+
'
\n
screenX:
'
+
event
.
screenX
+
'
\n
screenY:
'
+
event
.
screenY
+
'
\n
x:
'
+
event
.
x
+
'
\n
y:
'
+
event
.
y
+
'
\n
target:
'
+
'
\n
component globalPos:(
'
+
event
.
target
.
area
.
globalPosition
.
x
+
'
,
'
+
event
.
target
.
area
.
globalPosition
.
y
+
'
)
\n
width:
'
+
event
.
target
.
area
.
width
+
'
\n
height:
'
+
event
.
target
.
area
.
height
+
'
\n
timestamp
'
+
event
.
timestamp
;
})
}.
margin
(
20
)
Text
(
this
.
text
).
margin
(
15
)
}.
width
(
'
100%
'
)
}
}
```
...
...
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-drag-drop.md
浏览文件 @
2359769c
# 拖拽事件
拖拽事件指被长按后拖拽时触发的事件。
拖拽事件指
组件
被长按后拖拽时触发的事件。
> **说明:**
>
...
...
@@ -10,35 +10,35 @@
| 名称 | 支持冒泡 | 功能描述 |
| ---------------------------------------- | ---- | ---------------------------------------- |
| onDragStart(event:
(event?:
DragEvent,
extraParams?:
string)
=
>
[
CustomBuilder
](
ts-types.md#custombuilder8
)
\|
DragItemInfo) | 否 | 第一次拖拽此事件绑定的组件时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见extraParam类型描述。
<br/>
返回值:当前跟手效果所拖拽的对象,用于显示拖拽时的提示组件。
<br/>
长按150毫秒(ms)可触发拖拽事件。优先级:长按手势配置时间小于等于150毫秒(ms)
时,长按手势优先触发,否则拖拽事件优先触发。 |
| onDragEnter(event:
(event?:
DragEvent,
extraParams?:
string)
=
>
void) | 否 | 拖拽进入组件范围内时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见extraParam类型描述
。
<br/>
当监听了onDrop事件时,此事件才有效。 |
| onDragMove(event:
(event?:
DragEvent,
extraParams?:
string)
=
>
void) | 否 | 拖拽在组件范围内移动时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见extraParam类型描述
。
<br/>
当监听了onDrop事件时,此事件才有效。 |
| onDragLeave(event:
(event?:
DragEvent,
extraParams?:
string)
=
>
void) | 否 | 拖拽离开组件范围内时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见extraParam类型描述
。
<br/>
当监听了onDrop事件时,此事件才有效。 |
| onDrop(event:
(event?:
DragEvent,
extraParams?:
string)
=
>
void) | 否 | 绑定此事件的组件可作为拖拽释放目标,当在本组件范围内停止拖拽行为时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见extraParam类型描述
。 |
| onDragStart(event:
(event?:
[DragEvent](#dragevent说明),
extraParams?:
string)
=
>
[
CustomBuilder
](
ts-types.md#custombuilder8
)
\|
[
DragItemInfo
](
#dragiteminfo说明
)
| 否 | 第一次拖拽此事件绑定的组件时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见
[
extraParams
](
#extraparams说明
)
说明。
<br/>
返回值:当前跟手效果所拖拽的对象,用于显示拖拽时的提示组件。
<br/>
长按150ms可触发拖拽事件。优先级:长按手势配置时间小于等于150ms
时,长按手势优先触发,否则拖拽事件优先触发。 |
| onDragEnter(event:
(event?:
[DragEvent](#dragevent说明),
extraParams?:
string)
=
>
void) | 否 | 拖拽进入组件范围内时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见
[
extraParams
](
#extraparams说明
)
说明
。
<br/>
当监听了onDrop事件时,此事件才有效。 |
| onDragMove(event:
(event?:
[DragEvent](#dragevent说明),
extraParams?:
string)
=
>
void) | 否 | 拖拽在组件范围内移动时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见
[
extraParams
](
#extraparams说明
)
说明
。
<br/>
当监听了onDrop事件时,此事件才有效。 |
| onDragLeave(event:
(event?:
[DragEvent](#dragevent说明),
extraParams?:
string)
=
>
void) | 否 | 拖拽离开组件范围内时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见
[
extraParams
](
#extraparams说明
)
说明
。
<br/>
当监听了onDrop事件时,此事件才有效。 |
| onDrop(event:
(event?:
[DragEvent](#dragevent说明),
extraParams?:
string)
=
>
void) | 否 | 绑定此事件的组件可作为拖拽释放目标,当在本组件范围内停止拖拽行为时,触发回调。
<br/>
- event:拖拽事件信息,包括拖拽点坐标。
<br/>
- extraParams:拖拽事件额外信息,详见
[
extraParams
](
#extraparams说明
)
说明
。 |
## DragItemInfo说明
|
属性名称 | 属性
类型 | 必填 | 描述 |
|
名称 |
类型 | 必填 | 描述 |
| --------- | ---------------------------------------- | ---- | --------------------------------- |
| pixelMap |
[
PixelMap
](
../apis/js-apis-image.md#pixelmap7
)
| 否 | 设置拖拽过程中显示的图片。 |
| builder |
[
CustomBuilder
](
ts-types.md#custombuilder8
)
| 否 |
使用自定义生成器进行绘图
,如果设置了pixelMap,则忽略此值。 |
| builder |
[
CustomBuilder
](
ts-types.md#custombuilder8
)
| 否 |
拖拽过程中显示自定义组件
,如果设置了pixelMap,则忽略此值。 |
| extraInfo | string | 否 | 拖拽项的描述。 |
## extraParam说明
## extraParam
s
说明
用于返回组件在拖拽中需要用到的额外信息。
extraParam是Json对象转换的string字符串,可以通过Json.parse转换的Json对象获取如下属性。
extraParam
s
是Json对象转换的string字符串,可以通过Json.parse转换的Json对象获取如下属性。
|
属性名称 | 属性
类型 | 描述 |
|
名称 |
类型 | 描述 |
| ------------- | ------ | ---------------------------------------- |
| selectedIndex | number | 当拖拽事件设在父容器的子元素时,selectedIndex表示当前被拖拽子元素是父容器第selectedIndex个子元素,selectedIndex从0开始。
<br/>
仅在ListItem组件中生效。 |
| selectedIndex | number | 当拖拽事件设在父容器的子元素时,selectedIndex表示当前被拖拽子元素是父容器第selectedIndex个子元素,selectedIndex从0开始。
<br/>
仅在ListItem组件
的拖拽事件
中生效。 |
| insertIndex | number | 当前拖拽元素在List组件中放下时,insertIndex表示被拖拽元素插入该组件的第insertIndex个位置,insertIndex从0开始。
<br/>
仅在List组件的拖拽事件中生效。 |
## DragEvent
对象
说明
## DragEvent说明
| 名称 |
返回值类型 | 功能
描述 |
| 名称 |
类型 |
描述 |
| ------ | ------ | ---------------- |
| getX() | number | 当前拖拽点x轴坐标,单位为vp。 |
| getY() | number | 当前拖拽点y轴坐标,单位为vp。 |
...
...
@@ -50,101 +50,117 @@
@
Entry
@
Component
struct
DragExample
{
@
State
numbers
:
string
[]
=
[
'
one
'
,
'
two
'
,
'
three
'
,
'
four
'
,
'
five
'
,
'
six
'
]
@
State
text
:
string
=
''
@
State
bool
:
boolean
=
false
@
State
bool1
:
boolean
=
false
@
State
appleVisible
:
Visibility
=
Visibility
.
Visible
@
State
orangeVisible
:
Visibility
=
Visibility
.
Visible
@
State
bananaVisible
:
Visibility
=
Visibility
.
Visible
@
State
select
:
number
=
0
@
State
numbers
:
string
[]
=
[
'
one
'
,
'
two
'
,
'
three
'
,
'
four
'
,
'
five
'
,
'
six
'
];
@
State
text
:
string
=
''
;
@
State
bool
:
boolean
=
false
;
@
State
appleVisible
:
Visibility
=
Visibility
.
Visible
;
@
State
orangeVisible
:
Visibility
=
Visibility
.
Visible
;
@
State
bananaVisible
:
Visibility
=
Visibility
.
Visible
;
// 自定义拖拽过程中显示的内容
@
Builder
pixelMapBuilder
()
{
Column
()
{
Text
(
this
.
text
)
.
width
(
'
50%
'
).
height
(
60
).
fontSize
(
16
).
borderRadius
(
10
)
.
textAlign
(
TextAlign
.
Center
).
backgroundColor
(
Color
.
Yellow
)
.
width
(
'
50%
'
)
.
height
(
60
)
.
fontSize
(
16
)
.
borderRadius
(
10
)
.
textAlign
(
TextAlign
.
Center
)
.
backgroundColor
(
Color
.
Yellow
)
}
}
build
()
{
Column
()
{
Text
(
'
There are three Text elements here
'
)
.
fontSize
(
12
).
fontColor
(
0xCCCCCC
).
width
(
'
90%
'
)
.
textAlign
(
TextAlign
.
Start
).
margin
(
5
)
Flex
({
direction
:
FlexDirection
.
Row
,
alignItems
:
ItemAlign
.
Center
,
justifyContent
:
FlexAlign
.
SpaceAround
})
{
Text
(
'
apple
'
).
width
(
'
25%
'
).
height
(
35
).
fontSize
(
16
)
.
textAlign
(
TextAlign
.
Center
).
backgroundColor
(
0xAFEEEE
)
.
fontSize
(
12
)
.
fontColor
(
0xCCCCCC
)
.
width
(
'
90%
'
)
.
textAlign
(
TextAlign
.
Start
)
.
margin
(
5
)
Row
({
space
:
15
})
{
Text
(
'
apple
'
)
.
width
(
'
25%
'
)
.
height
(
35
)
.
fontSize
(
16
)
.
textAlign
(
TextAlign
.
Center
)
.
backgroundColor
(
0xAFEEEE
)
.
visibility
(
this
.
appleVisible
)
.
onDragStart
(()
=>
{
this
.
bool
=
true
this
.
text
=
'
apple
'
this
.
appleVisible
=
Visibility
.
Hidden
return
this
.
pixelMapBuilder
this
.
bool
=
true
;
this
.
text
=
'
apple
'
;
this
.
appleVisible
=
Visibility
.
None
;
return
this
.
pixelMapBuilder
;
})
Text
(
'
orange
'
).
width
(
'
25%
'
).
height
(
35
).
fontSize
(
16
)
.
textAlign
(
TextAlign
.
Center
).
backgroundColor
(
0xAFEEEE
)
Text
(
'
orange
'
)
.
width
(
'
25%
'
)
.
height
(
35
)
.
fontSize
(
16
)
.
textAlign
(
TextAlign
.
Center
)
.
backgroundColor
(
0xAFEEEE
)
.
visibility
(
this
.
orangeVisible
)
.
onDragStart
(()
=>
{
this
.
bool
=
true
this
.
text
=
'
orange
'
this
.
orangeVisible
=
Visibility
.
Hidden
return
this
.
pixelMapBuilder
this
.
bool
=
true
;
this
.
text
=
'
orange
'
;
this
.
orangeVisible
=
Visibility
.
None
;
return
this
.
pixelMapBuilder
;
})
Text
(
'
banana
'
).
width
(
'
25%
'
).
height
(
35
).
fontSize
(
16
)
.
textAlign
(
TextAlign
.
Center
).
backgroundColor
(
0xAFEEEE
)
Text
(
'
banana
'
)
.
width
(
'
25%
'
)
.
height
(
35
)
.
fontSize
(
16
)
.
textAlign
(
TextAlign
.
Center
)
.
backgroundColor
(
0xAFEEEE
)
.
visibility
(
this
.
bananaVisible
)
.
onDragStart
((
event
:
DragEvent
,
extraParams
:
string
)
=>
{
console
.
log
(
'
Text onDragStart
s,
'
+
extraParams
)
this
.
bool
=
true
this
.
text
=
'
banana
'
this
.
bananaVisible
=
Visibility
.
Hidden
return
this
.
pixelMapBuilder
console
.
log
(
'
Text onDragStart
,
'
+
extraParams
+
'
X:
'
+
event
.
getX
()
+
'
Y:
'
+
event
.
getY
());
this
.
bool
=
true
;
this
.
text
=
'
banana
'
;
this
.
bananaVisible
=
Visibility
.
None
;
return
this
.
pixelMapBuilder
;
})
}.
border
({
width
:
1
}).
width
(
'
90%
'
).
padding
({
top
:
10
,
bottom
:
10
}).
margin
(
10
)
Text
(
'
This is a List element
'
).
fontSize
(
12
)
.
fontColor
(
0xCCCCCC
).
width
(
'
90%
'
)
.
textAlign
(
TextAlign
.
Start
).
margin
(
15
)
List
({
space
:
20
,
initialIndex
:
0
})
{
}.
padding
({
top
:
10
,
bottom
:
10
}).
margin
(
10
)
Text
(
'
This is a List element
'
)
.
fontSize
(
12
)
.
fontColor
(
0xCCCCCC
)
.
width
(
'
90%
'
)
.
textAlign
(
TextAlign
.
Start
)
.
margin
(
15
)
List
({
space
:
20
})
{
ForEach
(
this
.
numbers
,
(
item
)
=>
{
ListItem
()
{
Text
(
''
+
item
)
.
width
(
'
100%
'
).
height
(
80
).
fontSize
(
16
).
borderRadius
(
10
)
.
textAlign
(
TextAlign
.
Center
).
backgroundColor
(
0xAFEEEE
)
Text
(
item
)
.
width
(
'
100%
'
)
.
height
(
80
)
.
fontSize
(
16
)
.
borderRadius
(
10
)
.
textAlign
(
TextAlign
.
Center
)
.
backgroundColor
(
0xAFEEEE
)
}
.
onDragStart
((
event
:
DragEvent
,
extraParams
:
string
)
=>
{
console
.
log
(
'
ListItem onDragStarts,
'
+
extraParams
)
var
jsonString
=
JSON
.
parse
(
extraParams
)
this
.
bool1
=
true
this
.
text
=
this
.
numbers
[
jsonString
.
selectedIndex
]
this
.
select
=
jsonString
.
selectedIndex
return
this
.
pixelMapBuilder
})
},
item
=>
item
)
}
.
editMode
(
true
)
.
height
(
'
50%
'
).
width
(
'
90%
'
).
border
({
width
:
1
})
.
height
(
'
50%
'
)
.
width
(
'
90%
'
)
.
border
({
width
:
1
})
.
padding
(
15
)
.
divider
({
strokeWidth
:
2
,
color
:
0xFFFFFF
,
startMargin
:
20
,
endMargin
:
20
})
.
onDragEnter
((
event
:
DragEvent
,
extraParams
:
string
)
=>
{
console
.
log
(
'
List onDragEnter,
'
+
extraParams
)
console
.
log
(
'
List onDragEnter,
'
+
extraParams
+
'
X:
'
+
event
.
getX
()
+
'
Y:
'
+
event
.
getY
());
})
.
onDragMove
((
event
:
DragEvent
,
extraParams
:
string
)
=>
{
console
.
log
(
'
List onDragMove,
'
+
extraParams
)
console
.
log
(
'
List onDragMove,
'
+
extraParams
+
'
X:
'
+
event
.
getX
()
+
'
Y:
'
+
event
.
getY
());
})
.
onDragLeave
((
event
:
DragEvent
,
extraParams
:
string
)
=>
{
console
.
log
(
'
List onDragLeave,
'
+
extraParams
)
console
.
log
(
'
List onDragLeave,
'
+
extraParams
+
'
X:
'
+
event
.
getX
()
+
'
Y:
'
+
event
.
getY
());
})
.
onDrop
((
event
:
DragEvent
,
extraParams
:
string
)
=>
{
var
jsonString
=
JSON
.
parse
(
extraParams
)
var
jsonString
=
JSON
.
parse
(
extraParams
)
;
if
(
this
.
bool
)
{
this
.
numbers
.
splice
(
jsonString
.
insertIndex
,
0
,
this
.
text
)
this
.
bool
=
false
}
else
if
(
this
.
bool1
)
{
this
.
numbers
.
splice
(
jsonString
.
selectedIndex
,
1
)
this
.
numbers
.
splice
(
jsonString
.
insertIndex
,
0
,
this
.
text
)
this
.
bool
=
false
this
.
bool1
=
false
// 通过splice方法插入元素
this
.
numbers
.
splice
(
jsonString
.
insertIndex
,
0
,
this
.
text
);
this
.
bool
=
false
;
}
})
}.
width
(
'
100%
'
).
height
(
'
100%
'
).
padding
({
top
:
20
}).
margin
({
top
:
20
})
...
...
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-key.md
浏览文件 @
2359769c
# 按键事件
按键事件指组件与键盘、遥控器等按键设备交互时触发的事件,适用于所有可
交互组件(默认可获焦),例如Button。对于Text,Image等不可获焦
组件,可以设置focusable属性为true后使用按键事件。
按键事件指组件与键盘、遥控器等按键设备交互时触发的事件,适用于所有可
获焦组件,例如Button。对于Text,Image等默认不可获焦的
组件,可以设置focusable属性为true后使用按键事件。
> **说明:**
>
...
...
@@ -12,7 +12,7 @@
| 名称 | 支持冒泡 | 功能描述 |
| ---------------------------------------- | ---- | ---------------------------------------- |
| onKeyEvent(event:
(event?:
KeyEvent)
=
>
void) | 是 | 绑定该方法的组件获焦后,按键动作触发该
方法调用,event参数
见
[
KeyEvent
](
#keyevent对象说明
)
介绍。 |
| onKeyEvent(event:
(event?:
KeyEvent)
=
>
void) | 是 | 绑定该方法的组件获焦后,按键动作触发该
回调,event返回值
见
[
KeyEvent
](
#keyevent对象说明
)
介绍。 |
## KeyEvent对象说明
...
...
@@ -24,7 +24,7 @@
| keyText | string | 按键的键值。 |
| keySource |
[
KeySource
](
ts-appendix-enums.md#keysource
)
| 触发当前按键的输入设备类型。 |
| deviceId | number | 触发当前按键的输入设备ID。 |
| metaKey | number | 按键发生时元键的状态,1表示按压态,0表示未按压态。 |
| metaKey | number | 按键发生时元键
(即Windows键盘的WIN键、Mac键盘的Command键)
的状态,1表示按压态,0表示未按压态。 |
| timestamp | number | 按键发生时的时间戳。 |
| stopPropagation | () => void | 阻塞事件冒泡传递。 |
...
...
@@ -36,25 +36,23 @@
@
Entry
@
Component
struct
KeyEventExample
{
@
State
text
:
string
=
''
@
State
eventType
:
string
=
''
@
State
text
:
string
=
''
;
@
State
eventType
:
string
=
''
;
build
()
{
Column
()
{
Button
(
'
KeyEvent
'
)
.
backgroundColor
(
0x2788D9
)
Button
(
'
KeyEvent
'
)
.
onKeyEvent
((
event
:
KeyEvent
)
=>
{
if
(
event
.
type
===
KeyType
.
Down
)
{
this
.
eventType
=
'
Down
'
this
.
eventType
=
'
Down
'
;
}
if
(
event
.
type
===
KeyType
.
Up
)
{
this
.
eventType
=
'
Up
'
this
.
eventType
=
'
Up
'
;
}
console
.
info
(
this
.
text
=
'
KeyType:
'
+
this
.
eventType
+
'
\n
keyCode:
'
+
event
.
keyCode
+
'
\n
keyText:
'
+
event
.
keyText
)
this
.
text
=
'
KeyType:
'
+
this
.
eventType
+
'
\n
keyCode:
'
+
event
.
keyCode
+
'
\n
keyText:
'
+
event
.
keyText
;
})
Text
(
this
.
text
).
padding
(
15
)
}.
height
(
300
).
width
(
'
100%
'
).
padding
(
35
)
}
}
```

\ No newline at end of file
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-show-hide.md
浏览文件 @
2359769c
...
...
@@ -19,30 +19,36 @@
```
ts
// xxx.ets
import
prompt
from
'
@
system.prompt
'
import
prompt
from
'
@
ohos.prompt
'
;
@
Entry
@
Component
struct
AppearExample
{
@
State
isShow
:
boolean
=
true
private
myText
:
string
=
'
Text for onAppear
'
private
changeAppear
:
string
=
'
Hide Text
'
@
State
isShow
:
boolean
=
true
;
@
State
changeAppear
:
string
=
'
Hide Text
'
;
private
myText
:
string
=
'
Text for onAppear
'
;
build
()
{
Column
()
{
Button
(
this
.
changeAppear
)
.
onClick
(()
=>
{
this
.
isShow
=
!
this
.
isShow
}).
margin
(
3
).
backgroundColor
(
0x2788D9
)
this
.
isShow
=
!
this
.
isShow
;
}).
margin
(
15
)
if
(
this
.
isShow
)
{
Text
(
this
.
myText
)
Text
(
this
.
myText
)
.
fontSize
(
26
).
fontWeight
(
FontWeight
.
Bold
)
.
onAppear
(()
=>
{
this
.
changeAppear
=
'
Show Text
'
prompt
.
showToast
({
message
:
'
The text is shown
'
,
duration
:
2000
})
this
.
changeAppear
=
'
Hide Text
'
;
prompt
.
showToast
({
message
:
'
The text is shown
'
,
duration
:
2000
})
})
.
onDisAppear
(()
=>
{
this
.
changeAppear
=
'
Hide Text
'
prompt
.
showToast
({
message
:
'
The text is hidden
'
,
duration
:
2000
})
this
.
changeAppear
=
'
Show Text
'
;
prompt
.
showToast
({
message
:
'
The text is hidden
'
,
duration
:
2000
})
})
}
}.
padding
(
30
).
width
(
'
100%
'
)
...
...
zh-cn/application-dev/reference/arkui-ts/ts-universal-events-touch.md
浏览文件 @
2359769c
# 触摸事件
当手指
放在组件上、滑动或从组件上移开
时触发。
当手指
在组件上按下、滑动、抬起
时触发。
> **说明:**
>
...
...
@@ -11,7 +11,7 @@
| 名称 | 是否冒泡 | 功能描述 |
| ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
| onTouch(event:
(event?:
TouchEvent)
=
>
void) | 是 |
触摸动作触发该方法调用,event参数
见
[
TouchEvent
](
#touchevent对象说明
)
介绍。 |
| onTouch(event:
(event?:
TouchEvent)
=
>
void) | 是 |
手指触摸动作触发该回调,event返回值
见
[
TouchEvent
](
#touchevent对象说明
)
介绍。 |
## TouchEvent对象说明
...
...
@@ -23,8 +23,8 @@
| changedTouches | Array
<
[TouchObject](#touchobject对象说明)
>
| 当前发生变化的手指信息。 |
| stopPropagation | () => void | 阻塞事件冒泡。 |
| timestamp
<sup>
8+
</sup>
| number | 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。 |
| target
<sup>
8+
</sup>
|
[
EventTarget
](
ts-universal-events-click.md
)
| 触发手势
事件的元素对象显示区域。 |
| source
<sup>
8+
</sup>
|
[
SourceType
](
ts-gesture-settings.md
)
| 事件输入设备。 |
| target
<sup>
8+
</sup>
|
[
EventTarget
](
ts-universal-events-click.md
#eventtarget8对象说明
)
| 触发
事件的元素对象显示区域。 |
| source
<sup>
8+
</sup>
|
[
SourceType
](
ts-gesture-settings.md
#sourcetype枚举说明
)
| 事件输入设备。 |
## TouchObject对象说明
...
...
@@ -45,29 +45,45 @@
@
Entry
@
Component
struct
TouchExample
{
@
State
text
:
string
=
''
@
State
eventType
:
string
=
''
@
State
text
:
string
=
''
;
@
State
eventType
:
string
=
''
;
build
()
{
Flex
({
direction
:
FlexDirection
.
Column
,
alignItems
:
ItemAlign
.
Center
,
justifyContent
:
FlexAlign
.
SpaceBetween
}
)
{
Button
(
'
Touch
'
).
backgroundColor
(
0x2788D9
).
height
(
40
).
width
(
8
0
)
Column
(
)
{
Button
(
'
Touch
'
).
height
(
40
).
width
(
10
0
)
.
onTouch
((
event
:
TouchEvent
)
=>
{
if
(
event
.
type
===
TouchType
.
Down
)
{
this
.
eventType
=
'
Down
'
this
.
eventType
=
'
Down
'
;
}
if
(
event
.
type
===
TouchType
.
Up
)
{
this
.
eventType
=
'
Up
'
this
.
eventType
=
'
Up
'
;
}
if
(
event
.
type
===
TouchType
.
Move
)
{
this
.
eventType
=
'
Move
'
this
.
eventType
=
'
Move
'
;
}
console
.
info
(
this
.
text
=
'
TouchType:
'
+
this
.
eventType
+
'
\n
Distance between touch point and touch element:
\n
x:
'
+
event
.
touches
[
0
].
x
+
'
\n
'
+
'
y:
'
+
event
.
touches
[
0
].
y
+
'
\n
c
omponent globalPos:(
'
this
.
text
=
'
TouchType:
'
+
this
.
eventType
+
'
\n
Distance between touch point and touch element:
\n
x:
'
+
event
.
touches
[
0
].
x
+
'
\n
'
+
'
y:
'
+
event
.
touches
[
0
].
y
+
'
\n
C
omponent globalPos:(
'
+
event
.
target
.
area
.
globalPosition
.
x
+
'
,
'
+
event
.
target
.
area
.
globalPosition
.
y
+
'
)
\n
width:
'
+
event
.
target
.
area
.
width
+
'
\n
height:
'
+
event
.
target
.
area
.
height
)
+
event
.
target
.
area
.
width
+
'
\n
height:
'
+
event
.
target
.
area
.
height
;
})
Button
(
'
Touch
'
).
height
(
50
).
width
(
200
).
margin
(
20
)
.
onTouch
((
event
:
TouchEvent
)
=>
{
if
(
event
.
type
===
TouchType
.
Down
)
{
this
.
eventType
=
'
Down
'
;
}
if
(
event
.
type
===
TouchType
.
Up
)
{
this
.
eventType
=
'
Up
'
;
}
if
(
event
.
type
===
TouchType
.
Move
)
{
this
.
eventType
=
'
Move
'
;
}
this
.
text
=
'
TouchType:
'
+
this
.
eventType
+
'
\n
Distance between touch point and touch element:
\n
x:
'
+
event
.
touches
[
0
].
x
+
'
\n
'
+
'
y:
'
+
event
.
touches
[
0
].
y
+
'
\n
Component globalPos:(
'
+
event
.
target
.
area
.
globalPosition
.
x
+
'
,
'
+
event
.
target
.
area
.
globalPosition
.
y
+
'
)
\n
width:
'
+
event
.
target
.
area
.
width
+
'
\n
height:
'
+
event
.
target
.
area
.
height
;
})
Text
(
this
.
text
)
}.
height
(
200
).
width
(
350
).
padding
({
left
:
35
,
right
:
35
,
top
:
35
}
)
}.
width
(
'
100%
'
).
padding
(
30
)
}
}
```
...
...
zh-cn/application-dev/reference/arkui-ts/ts-universal-focus-event.md
浏览文件 @
2359769c
# 焦点事件
焦点事件指页面焦点在
组件间移动时触发的事件,组件可使用焦点事件来更改内容
。
焦点事件指页面焦点在
可获焦组件间移动时触发的事件,组件可使用焦点事件来处理相关逻辑
。
> **说明:**
>
> - 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
>
> - 目前仅支持通过外接键盘的tab键、方向键触发。
...
...
@@ -12,13 +13,9 @@
|
**名称**
|
**支持冒泡**
|
**功能描述**
|
| ---------------------------------------- | -------- | --------------- |
| onFocus(event:
()
=
>
void) | 否
| 当前组件获取焦点时触发的回调。 |
| onFocus(event:
()
=
>
void) | 否 | 当前组件获取焦点时触发的回调。 |
| onBlur(event:()
=
>
void) | 否 | 当前组件失去焦点时触发的回调。 |
> **说明:**
>
> 支持焦点事件的组件:Button、Text、Image、List、Grid。
## 示例
...
...
@@ -27,44 +24,50 @@
@
Entry
@
Component
struct
FocusEventExample
{
@
State
textOne
:
string
=
''
@
State
textTwo
:
string
=
''
@
State
textThree
:
string
=
''
@
State
oneButtonColor
:
string
=
'
#FF0000
'
@
State
twoButtonColor
:
string
=
'
#87CEFA
'
@
State
threeButtonColor
:
string
=
'
#90EE90
'
@
State
oneButtonColor
:
string
=
'
#FFC0CB
'
;
@
State
twoButtonColor
:
string
=
'
#87CEFA
'
;
@
State
threeButtonColor
:
string
=
'
#90EE90
'
;
build
()
{
Column
({
space
:
20
}){
Button
(
this
.
textOne
)
Column
({
space
:
20
})
{
// 通过外接键盘的上下键可以让焦点在三个按钮间移动,按钮获焦时颜色变化,失焦时变回原背景色
Button
(
'
First Button
'
)
.
backgroundColor
(
this
.
oneButtonColor
)
.
width
(
260
).
height
(
70
).
fontColor
(
Color
.
Black
)
.
width
(
260
)
.
height
(
70
)
.
fontColor
(
Color
.
Black
)
.
focusable
(
true
)
.
onFocus
(()
=>
{
this
.
textOne
=
'
First Button onFocus
'
this
.
oneButtonColor
=
'
#AFEEEE
'
this
.
oneButtonColor
=
'
#FF0000
'
;
})
.
onBlur
(()
=>
{
this
.
textOne
=
'
First Button onBlur
'
this
.
oneButtonColor
=
'
#FFC0CB
'
this
.
oneButtonColor
=
'
#FFC0CB
'
;
})
Button
(
this
.
textTwo
)
Button
(
'
Second Button
'
)
.
backgroundColor
(
this
.
twoButtonColor
)
.
width
(
260
).
height
(
70
).
fontColor
(
Color
.
Black
)
.
width
(
260
)
.
height
(
70
)
.
fontColor
(
Color
.
Black
)
.
focusable
(
true
)
Button
(
this
.
textThree
)
.
onFocus
(()
=>
{
this
.
twoButtonColor
=
'
#FF0000
'
;
})
.
onBlur
(()
=>
{
this
.
twoButtonColor
=
'
#87CEFA
'
;
})
Button
(
'
Third Button
'
)
.
backgroundColor
(
this
.
threeButtonColor
)
.
width
(
260
).
height
(
70
).
fontColor
(
Color
.
Black
)
.
width
(
260
)
.
height
(
70
)
.
fontColor
(
Color
.
Black
)
.
focusable
(
true
)
.
onFocus
(()
=>
{
this
.
textThree
=
'
Third Button onFocus
'
this
.
threeButtonColor
=
'
#AFEEEE
'
this
.
threeButtonColor
=
'
#FF0000
'
;
})
.
onBlur
(()
=>
{
this
.
textThree
=
'
Third Button onBlur
'
this
.
threeButtonColor
=
'
#FFC0CB
'
this
.
threeButtonColor
=
'
#90EE90
'
;
})
}.
width
(
'
100%
'
).
margin
({
top
:
20
})
}.
width
(
'
100%
'
).
margin
({
top
:
20
})
}
}
```
zh-cn/application-dev/reference/arkui-ts/ts-universal-mouse-key.md
浏览文件 @
2359769c
# 鼠标事件
在单个动作触发多个事件时,事件的顺序是固定的,鼠标事件默认透传。
在
鼠标的
单个动作触发多个事件时,事件的顺序是固定的,鼠标事件默认透传。
> **说明:**
>
...
...
@@ -12,23 +12,23 @@
| 名称 | 支持冒泡 | 描述 |
| ------------------------------------------------------------ | -------- | ------------------------------------------------------------ |
| onHover(event:
(isHover?:
boolean)
=
>
void) | 否 | 鼠标进入或退出组件时触发该回调。
<br/>
isHover:表示鼠标是否悬浮在组件上,鼠标进入时为true,
退出时为false。 |
| onMouse(event:
(event?:
MouseEvent)
=
>
void) | 是 | 当前组件被鼠标按键点击时或者鼠标在组件上
移动时,触发该回调,event参数包含触发事件时的时间戳、鼠标按键、动作、点击触点在整个屏幕上的坐标和点击触点
相对于当前组件的坐标。 |
| onMouse(event:
(event?:
MouseEvent)
=
>
void) | 是 | 当前组件被鼠标按键点击时或者鼠标在组件上
悬浮移动时,触发该回调,event返回值包含触发事件时的时间戳、鼠标按键、动作、鼠标位置在整个屏幕上的坐标和
相对于当前组件的坐标。 |
## MouseEvent对象说明
| 名称 | 属性类型 | 描述 |
| --------- | ------------------------------- | -------------------- |
| screenX | number |
点击触点
相对于应用窗口左上角的x轴坐标。 |
| screenY | number |
点击触点
相对于应用窗口左上角的y轴坐标。 |
| x | number |
点击触点
相对于当前组件左上角的x轴坐标。 |
| y | number |
点击触点
相对于当前组件左上角的y轴坐标。 |
| screenX | number |
鼠标位置
相对于应用窗口左上角的x轴坐标。 |
| screenY | number |
鼠标位置
相对于应用窗口左上角的y轴坐标。 |
| x | number |
鼠标位置
相对于当前组件左上角的x轴坐标。 |
| y | number |
鼠标位置
相对于当前组件左上角的y轴坐标。 |
| button |
[
MouseButton
](
ts-appendix-enums.md#mousebutton
)
| 鼠标按键。 |
| action |
[
MouseAction
](
ts-appendix-enums.md#mouseaction
)
|
事件
动作。 |
| action |
[
MouseAction
](
ts-appendix-enums.md#mouseaction
)
|
鼠标
动作。 |
| stopPropagation | () => void | 阻塞事件冒泡。 |
| timestamp
<sup>
8+
</sup>
| number | 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。
|
| target
<sup>
8+
</sup>
|
[
EventTarget
](
ts-universal-events-click.md
)
| 触发手势
事件的元素对象显示区域。 |
| source
<sup>
8+
</sup>
|
[
SourceType
](
ts-gesture-settings.md
)
| 事件输入设备。
|
| timestamp
<sup>
8+
</sup>
| number | 事件时间戳。触发事件时距离系统启动的时间间隔,单位纳秒。 |
| target
<sup>
8+
</sup>
|
[
EventTarget
](
ts-universal-events-click.md
#eventtarget8对象说明
)
| 触发
事件的元素对象显示区域。 |
| source
<sup>
8+
</sup>
|
[
SourceType
](
ts-gesture-settings.md
#sourcetype枚举说明
)
| 事件输入设备。
|
## 示例
...
...
@@ -37,31 +37,70 @@
@
Entry
@
Component
struct
MouseEventExample
{
@
State
hoverText
:
string
=
'
no hover
'
@
State
mouseText
:
string
=
'
MouseText
'
@
State
color
:
Color
=
Color
.
Blue
@
State
hoverText
:
string
=
'
no hover
'
;
@
State
mouseText
:
string
=
''
;
@
State
action
:
string
=
''
;
@
State
mouseBtn
:
string
=
''
;
@
State
color
:
Color
=
Color
.
Blue
;
build
()
{
Column
({
space
:
20
})
{
Column
({
space
:
20
})
{
Button
(
this
.
hoverText
)
.
width
(
180
).
height
(
80
)
.
backgroundColor
(
this
.
color
)
.
onHover
((
isHover
:
boolean
)
=>
{
// 通过onHover事件动态修改按钮在是否有鼠标悬浮时的文本内容与背景颜色
if
(
isHover
)
{
this
.
hoverText
=
'
on hover
'
this
.
color
=
Color
.
Pink
this
.
hoverText
=
'
hover
'
;
this
.
color
=
Color
.
Pink
;
}
else
{
this
.
hoverText
=
'
no hover
'
this
.
color
=
Color
.
Blue
this
.
hoverText
=
'
no hover
'
;
this
.
color
=
Color
.
Blue
;
}
})
.
backgroundColor
(
this
.
color
)
Button
(
'
onMouse
'
)
.
width
(
180
).
height
(
80
)
.
onMouse
((
event
:
MouseEvent
)
=>
{
console
.
log
(
this
.
mouseText
=
'
onMouse:
\n
Button =
'
+
event
.
button
+
'
\n
Action =
'
+
event
.
action
+
'
\n
localXY=(
'
+
event
.
x
+
'
,
'
+
event
.
y
+
'
)
'
+
'
\n
screenXY=(
'
+
event
.
screenX
+
'
,
'
+
event
.
screenY
+
'
)
'
)
switch
(
event
.
button
)
{
case
MouseButton
.
None
:
this
.
mouseBtn
=
'
None
'
;
break
;
case
MouseButton
.
Left
:
this
.
mouseBtn
=
'
Left
'
;
break
;
case
MouseButton
.
Right
:
this
.
mouseBtn
=
'
Right
'
;
break
;
case
MouseButton
.
Back
:
this
.
mouseBtn
=
'
Back
'
;
break
;
case
MouseButton
.
Forward
:
this
.
mouseBtn
=
'
Forward
'
;
break
;
case
MouseButton
.
Middle
:
this
.
mouseBtn
=
'
Middle
'
;
break
;
}
switch
(
event
.
action
)
{
case
MouseAction
.
Hover
:
this
.
action
=
'
Hover
'
;
break
;
case
MouseAction
.
Press
:
this
.
action
=
'
Press
'
;
break
;
case
MouseAction
.
Move
:
this
.
action
=
'
Move
'
;
break
;
case
MouseAction
.
Release
:
this
.
action
=
'
Release
'
;
break
;
}
this
.
mouseText
=
'
onMouse:
\n
Button =
'
+
this
.
mouseBtn
+
'
\n
Action =
'
+
this
.
action
+
'
\n
XY=(
'
+
event
.
x
+
'
,
'
+
event
.
y
+
'
)
'
+
'
\n
screenXY=(
'
+
event
.
screenX
+
'
,
'
+
event
.
screenY
+
'
)
'
;
})
Text
(
this
.
mouseText
)
}.
padding
({
top
:
2
0
}).
width
(
'
100%
'
)
}.
padding
({
top
:
3
0
}).
width
(
'
100%
'
)
}
}
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录