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.Capsule。 103 104变更后:ButtonOptions中type的默认值为ButtonType.ROUNDED_RECTANGLE。 105 106 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|  |  | 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