• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ArkUI子系统Changelog
2
3## cl.arkui.1 无障碍绿框绘制区域和聚焦区域修改为组件触摸热区
4
5**访问级别**
6
7公开接口
8
9**变更原因**
10
11无论是否开启无障碍,触碰操作控件的范围都应保持一致,无需为无障碍单独定义操控范围。
12
13**变更影响**
14
15此变更不涉及应用适配。
16
17- 变更前:无障碍绿框绘制区域、聚焦区域为组件区域。
18
19- 变更后:无障碍绿框绘制区域、聚焦区域为组件触摸热区。
20
21**起始API Level**
22
2316
24
25**变更发生版本**
26
27从OpenHarmony SDK 5.1.0.53开始。
28
29**变更的接口/组件**
30
31arkui无障碍
32
33**适配指导**
34
35此处无需应用适配,热区显示大小的调整,无论是否配置热区,均为内部逻辑调整绿框显示位置或大小。
36
37## cl.arkui.2 拖拽缩放比例UX规则变更
38
39**访问级别**
40
41公开接口
42
43**变更原因**
44
45UX规范变更。
46
47**变更影响**
48
49此变更不涉及应用适配。
50
51变更前:通过设备栅格数来设置跟手图的大小。
52
53  | 设备大小 | 跟手图大小 |
54  | :------- | :--------- |
55  | 4栅格    | 2栅格      |
56  | 8栅格    | 3栅格      |
57  | 12栅格   | 4栅格      |
58
59变更后:根据不同类型设备的最短边来设置缩放规则。
60
61| 拖拽对象         | 判断规则                          | 缩放规则                                                                                                                               |
62| :--------------- | :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------- |
63| 图文选择跟随文本 | 设备最短边小于600vp。             | 跟手图最大高度不超过屏幕短边长度的1/2且最大宽度不超过屏幕短边长度,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。      |
64| 图文选择跟随文本 | 设备最短边大于600vp,小于840vp。  | 跟手图最大高度不超过屏幕短边长度的1/4且最大宽度不超过屏幕短边长度的1/2,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
65| 图文选择跟随文本 | 设备最短边大于840vp,小于1440vp。 | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的2/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
66| 图文选择跟随文本 | 设备最短边大于1440vp。            | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的2/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
67| 图片拖拽缩放     | 设备最短边小于600vp。             | 跟手图最大高度不超过屏幕短边长度的1/2且最大宽度不超过屏幕短边长度的1/2,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
68| 图片拖拽缩放     | 设备最短边大于600vp,小于840vp。  | 跟手图最大高度不超过屏幕短边长度的1/4且最大宽度不超过屏幕短边长度的1/4,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
69| 图片拖拽缩放     | 设备最短边大于840vp,小于1440vp。 | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的1/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
70| 图片拖拽缩放     | 设备最短边大于1440vp。            | 跟手图最大高度不超过屏幕短边长度的1/3且最大宽度不超过屏幕短边长度的1/3,跟手图在超出限制时需按比例缩小,同时满足高度和宽度的限制条件。 |
71
72**起始API Level**
73
7413
75
76**变更发生版本**
77
78从OpenHarmony SDK 5.1.0.53开始。
79
80**变更的接口/组件**
81
82UX规格变更,不涉及接口和组件。
83
84**适配指导**
85
86默认行为变更,无需适配。
87
88## cl.arkui.3 按钮默认值变更为新增圆角矩形类型
89
90**访问级别**
91
92公开接口
93
94**变更原因**
95
96原有默认类型按钮是胶囊按钮,在适老化场景下字体过大,在多行等场景下胶囊按钮文字易超出其圆角范围。不符合简单易用及高端精致原则,因此新增圆角矩形类型按钮,默认值变为新增的圆角矩形类型。
97
98**变更影响**
99
100此变更不涉及应用适配。
101
102变更前:ButtonOptions中type的默认值为ButtonType.Capsule103
104变更后:ButtonOptions中type的默认值为ButtonType.ROUNDED_RECTANGLE105
106![roundedRectButton](figures/roundedRectButton.PNG)
107
108**起始API Level**
109
110API 9
111
112**变更发生版本**
113
114从OpenHarmony SDK 5.1.0.53开始。
115
116**变更的接口/组件**
117
118Button组件中ButtonOptions对象的type属性默认值。
119
120**适配指导**
121
122开发者在使用Button组件,创建默认类型的Button按钮时,Button按钮为ROUNDED_RECTANGLE类型。
123
124```ts
125
126@Entry
127@Component
128struct ButtonExample {
129  build() {
130    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Start, justifyContent: FlexAlign.SpaceBetween }) {
131      Text('Capsule button with rounded corners by default.').fontSize(9).fontColor(0xCCCCCC)
132      Flex({ alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
133        Button('Capsule')
134          .type(ButtonType.Capsule)
135          .backgroundColor(0x317aff)
136          .height(60)
137          .controlSize(ControlSize.NORMAL)
138          .width(180)
139      }
140      Text('Rounded rectangle button with rounded corners by default.').fontSize(9).fontColor(0xCCCCCC)
141      Flex({ alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {
142        Button('Rounded rectangle')
143          .type(ButtonType.ROUNDED_RECTANGLE)
144          .backgroundColor(0x317aff)
145          .controlSize(ControlSize.NORMAL)
146          .height(60)
147          .width(180)
148      }
149    }.height(400).padding({ left: 35, right: 35, top: 35 })
150  }
151}
152
153```
154
155## cl.arkui.4 修复Popup高级组件宽度限制计算错误的问题
156
157**访问级别**
158
159公开接口
160
161**变更原因**
162
163目前宽度最大限制不符合ux规范,在手机屏幕场景下,会出现Popup高级组件无法撑满屏幕的情况,影响体验。
164
165**变更影响**
166
167此变更不涉及应用适配。
168
169变更前:屏幕宽度小于400vp时,Popup高级组件最大宽度为当前屏幕宽度-80vp。
170
171变更后:屏幕宽度小于400vp时,Popup高级组件最大宽度为当前屏幕宽度。
172
173| 变更前                                   | 变更后                                   |
174| ---------------------------------------- | ---------------------------------------- |
175| ![popup_before](figures/popup_before.png) | ![popup_after](figures/popup_after.png) |
176
177**起始API Level**
178
17911
180
181**变更发生版本**
182
183从OpenHarmony 5.1.0.53 版本开始。
184
185**变更的接口/组件**
186
187Popup高级组件。
188
189**适配指导**
190
191如果用户原来没有自定义Popup高级组件的宽度,且内容宽度大于320vp,变更前按320vp显示,变更后,Popup高级组件会变宽;如不符合预期,可以手动修改为想要的宽度。
192
193## cl.arkui.5 getKeyboardAvoidMode接口返回值变更
194
195**访问级别**
196
197公开接口
198
199**变更原因**
200
201getKeyboardAvoidMode接口实际返回值为字符串,与文档描述返回值为KeyboardAvoidMode枚举值类型不符。
202
203**变更影响**
204
205此变更涉及应用适配。
206
207- 变更前:getKeyboardAvoidMode接口返回字符串类型。
208
209- 变更后:getKeyboardAvoidMode接口返回KeyboardAvoidMode枚举值。
210
211**起始API Level**
212
21311
214
215**变更发生版本**
216
217从OpenHarmony SDK 5.1.0.53开始。
218
219**适配指导**
220
221如下代码实现:
222```ts
223//EntryAbility.ets
224import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';
225import { hilog } from '@kit.PerformanceAnalysisKit';
226import { window, KeyboardAvoidMode } from '@kit.ArkUI';
227
228export default class EntryAbility extends UIAbility {
229  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
230    this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET);
231    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
232  }
233  onDestroy(): void {
234    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
235  }
236  onWindowStageCreate(windowStage: window.WindowStage): void {
237    // Main window is created, set main page for this ability
238    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
239
240    windowStage.loadContent('pages/Index', (err, data) => {
241      //获取并打印当前KeyboardAvoidMode
242      let keyboardAvoidMode = windowStage.getMainWindowSync().getUIContext().getKeyboardAvoidMode();
243      console.log("=====keyboardAvoidMode=====: ", keyboardAvoidMode);
244
245      if (err.code) {
246        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
247        return;
248      }
249      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
250    });
251  }
252
253  onWindowStageDestroy(): void {
254    // Main window is destroyed, release UI related resources
255    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
256  }
257
258  onForeground(): void {
259    // Ability has brought to foreground
260    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
261  }
262
263  onBackground(): void {
264    // Ability has back to background
265    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
266  }
267}
268```
269