unified-interaction-events.md 6.9 KB
Newer Older
Z
zengyawen 已提交
1 2
# 交互事件归一

3
本章节描述了在多种交互任务或场景下,应用在常用的输入设备(例如触控屏、鼠标、触控板、键盘)上分别对应的正确的交互规则。**设计师和开发者应保证在当前输入方式(设备)下应用能够以正确的、符合用户习惯的交互规则进行响应。**
Z
zengyawen 已提交
4 5 6 7


![zh-cn_image_0000001568093289](figures/zh-cn_image_0000001568093289.png)

H
harmonyOS_GF 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
## 悬浮

应用场景<br>
用户通过在某个元素上悬浮可以预览到更多信息或功能。

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏 | N/A | 
| 鼠标 | 光标移动到物体上。 |
| 触摸板 | 光标移动到物体上。 | 
| 键盘 | N/A | 

手写笔的悬浮交互需要手写笔硬件支持悬浮能力。
## 单击

应用场景<br>
用户通过点击某些元素激活控件、访问新页面、或改变自身状态。

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏 | 单指单击。 | 
| 鼠标 | 按压鼠标左键。 |
| 触摸板 | 单指轻点/单指按压。 | 
| 键盘 | 走焦状态下,移动焦点到对象上后按下空格键。 | 

一般地,触屏手指的按下/抬起行为对应光标的按下/抬起行为。<br>
在一些特殊场景,可能会存在使用鼠标/触摸双击打开对象的交互方案,例如电脑模式下打开桌面应用或文件。此类情况需由应用单独特殊处理,且同一功能不能同时支持单击和双击两种交互方式。
## 双击

应用场景<br>
用户通过双击进行某些快捷操作,如快速放大图片、点赞等。

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏 | 单指点击两下。 | 
| 鼠标 | 快速点击鼠标左键两下。 |
| 触摸板 | 单指轻点两下/单指按压两下。 | 
| 键盘 | 走焦状态下,移动焦点到对象上后按压两次空格键。 | 

## 长按
应用场景<br>
用户通过长按进行某些快捷操作,如长按视频倍速播放等。

![ longpress ](figures/longpress.jpg)

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏 | 单指长按。 | 
| 鼠标 | 长按左键。 |
| 触摸板 | 单指长按。 | 
| 键盘 | 走焦状态下,移动到对象上长按空格。 | 

## 上下文菜单
应用场景<br>
Z
zengyawen 已提交
62 63
某个元素上显示弹出菜单或快捷方式菜单。

H
harmonyOS_GF 已提交
64
![zh-cn_image_0000001268533753](figures/zh-cn_image_0000001268533753.jpg)
Z
zengyawen 已提交
65

H
harmonyOS_GF 已提交
66
| **输入设备/方式** | **交互行为** |
Z
zengyawen 已提交
67
| -------- | -------- |
H
harmonyOS_GF 已提交
68 69 70 71
| 触屏 | 单指长按  |
| 鼠标 | 右键单击 |
| 触摸板 | 双指轻点/按压(与PC一致),<br> 单击/单指长按(保留触屏习惯)。 |
| 键盘 | shift+F10 或 LOGO+M。 |
Z
zengyawen 已提交
72

73
这里的菜单指的是广义的菜单,即用于展示用户可执行的操作的临时性弹出窗口。<br>
Z
zengyawen 已提交
74 75
凡是在触屏上通过长按显示的菜单,都需要支持鼠标右键单击和触摸板双指单击的触发方式。

H
harmonyOS_GF 已提交
76
## 拖拽
Z
zengyawen 已提交
77

H
harmonyOS_GF 已提交
78 79
应用场景<br>
移动某个元素位置或者移动某个元素用于发送等。
Z
zengyawen 已提交
80

H
harmonyOS_GF 已提交
81
![zh-cn_image_0000001268653953](figures/zh-cn_image_0000001268653953.png)
Z
zengyawen 已提交
82

H
harmonyOS_GF 已提交
83
  | **输入设备/方式** | **交互行为** | 
Z
zengyawen 已提交
84
| -------- | -------- |
H
harmonyOS_GF 已提交
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| 触屏 | 长按并移动。 | 
| 鼠标| 按压左键并移动鼠标(无需长按等待)。 | 
| 触摸板 | 按压左键并移动。 | 
| 键盘 | N/A | 

## 滚动/平移
应用场景<br>
滚动列表或页面。

![scroll](figures/scroll.jpg)

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏 | 单指接触屏幕后滑动。 | 
| 鼠标 | 上下滚动滚轮/shift+上下滚动滚轮可以实现上下/左右滚动,指针不动。<br>有上下滚动时,通过shift+滚轮左右滚动。无上下滚动时,滚轮可响应左右滚动。<br>自然滚动时,<br>滚轮向上滚动,页面向上滚动。<br>滚轮向下滚动,页面向下滚动。<br>滚轮每滚动1个刻痕,页面相应滚动一段距离,默认为64vp,应用也可自行设定。|
| 触摸板 | 自然滚动时,触摸板上双指滑动行为与触屏上单指滑动行为一致。<br>双指向上滑动,页面向下滚动。<br>双指向下滑动,页面向上滚动。<br>双指滑动时,页面进行精细、连续的滚动;当双指离开触摸板时,页面根据离手速度继续进行减速滑动直到停止。<br>若列表是横向列表,则双指向左滑动,页面向右滚动;双指向右滑动,页面向左滚动。 | 
| 键盘 | N/A | 

在鼠标、触控板滚动过程中,仅页面元素发生变化,光标不发生移动。

## 轻扫
应用场景<br>
将一个页面切换至下一个页面或快速滚动页面。

![ fling ](figures/fling.png)

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏 | 	单指快速滑动。 | 
| 鼠标 | 滚动一格或快速滚动后停止。 |
| 触摸板 | 双指快速移动。 | 
| 键盘 | N/A| 

在鼠标、触控板轻扫过程中,仅页面元素发生变化,光标不发生移动。
119

H
harmonyOS_GF 已提交
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
## 缩放对象
应用场景<br>
查看图片或浏览页面时调整对象大小。

![zoom](figures/zoom.png)

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏   | 	双指张开为放大,双指捏合为缩小。 | 
| 鼠标 | 按下 Ctrl 键同时滚动鼠标滚轮,可按照光标位置放大或缩小内容。<br> - 鼠标滚轮上滚,每滚动1个刻痕,以光标位置作为中心对象放大N%。<br> - 鼠标滚轮下滚,每滚动1个刻痕,对象缩小N%。 |
| 触摸板 | 触摸板上双指捏合行为与触屏上双指捏合行为一致,当光标移动到对象上后:<br> - 触摸板双指向外扩展以放大内容。<br> - 触摸板双指向内收拢以缩小内容。<br> 优化显控比,以使用户能够轻松、快速、准确地调节到目标尺寸。 | 
| 键盘 |Ctrl+加号键:以对象的中心点使对象放大N%。<br>Ctrl+减号键:以对象的中心点使对象缩N%。| 

## 旋转对象
应用场景<br>
编辑图片时旋转图片。

| **输入设备/方式** | **交互行为**  |
| -------- | -------- | 
| 触屏   | 	两个手指在屏幕旋转,对象跟随旋转。 | 
| 鼠标 | N/A |
| 触摸板 | 触摸板上双指旋转行为与触屏上双指旋转行为一致,当光标移动到对象上后:<br> - 触摸板双顺时针旋转,对象跟手顺时针旋转。<br> - 触摸板双逆时针旋转,对象跟手逆时针旋转。 | 
| 键盘 |	N/A| 

有些场景中触屏上双指可以同时进行缩放和旋转操作(如图片/地图浏览),触摸板应同步支持。

## 交互事件归一接口
147
为了保障用户在不同交互设备上的交互体验一致,同时又尽量减少不同输出设备适配工作,建议使用交互事件归一接口。该接口涵盖用户基础的交互任务,并遵循了用户在触控、鼠标、触控板等设备的交互习惯。详见[交互事件归一开发文档](../../application-dev/key-features/multi-device-app-dev/interaction-event-normalization.md)