harmony 鸿蒙ArkUI子系统Changelog
ArkUI子系统Changelog
cl.arkui.1 文本与输入、信息展示、按钮与选择、滚动与滑动、图形绘制组件接口支持Resource类型
访问级别
公开接口
变更原因
基础能力增强,文本与输入、信息展示、按钮与选择、滚动与滑动、图形绘制组件的接口支持Resource类型,可以使用资源对象设置默认选项的值。
变更影响
此变更涉及应用适配。
变更前:TextPickerOptions、Progress、QRCode、TextClock、TextTimer、Badge、Circle、Text、TextArea、TextInput、Search、Span、RichEditor、Rating、Rect、Ellipse、Line、Polyline、Path、Polygon、ProgressButton、SubHeader、SubHeaderV2、Shape、SwipeRefresher中部分接口不支持Resource类型。
变更后:TextPickerOptions、Progress、QRCode、TextClock、TextTimer、Badge、Circle、Text、TextArea、TextInput、Search、Span、RichEditor、Rating、Rect、Ellipse、Line、Polyline、Path、Polygon、ProgressButton、SubHeader、SubHeaderV2、Shape、SwipeRefresher中部分接口支持Resource类型。
起始API Level
11
变更发生版本
从OpenHarmony SDK 6.0.0.32开始。
变更的接口/组件
|组件名称|接口名称|参数名称| |–|–|–| |TextPicker|TextPickerOptions|value| |Progress|CapsuleStyleOptions|content| |TextPicker|TextPickerOptions|value| |QRCode|QRCodeInterface|value| |TextClock|format|value| |TextTimer|fontWeight|value| |Badge|BadgeStyle|fontSize、badgeSize、fontWeight| |Badge|BadgeParamWithString|value| |Circle|CircleOptions|width、height| |Text|fontWeight|value、weight| |Text|letterSpacing|value| |Text|baselineOffset|value| |TextArea|fontWeight|value| |TextInput|fontWeight|value| |Search|SearchOptions|value| |Search|searchButton|value| |Span|fontWeight|value| |Span|letterSpacing|value| |RichEditor|RichEditorController.addTextSpan|content| |Rating|StarStyleOptions|backgroundUri、foregroundUri、secondaryUri| |Rect|RectOptions|width、height、radius| |Rect|RoundedRectOptions|width、height、radiusWidth、radiusHeight| |Rect|radiusWidth|value| |Rect|radiusHeight|value| |Rect|radius|value| |Ellipse|EllipseOptions|width、height| |Line|LineOptions|width、height| |Polyline|PolylineOptions|width、height| |Path|PathOptions|width、height、commands| |Path|commands|value| |Polygon|PolygonOptions|width、height| |ProgressButton|-|content| |SubHeader|SelectOptions|value| |SubHeaderV2|SubHeaderV2SelectOptions|selectedContent| |SubHeaderV2|SubHeaderV2Select|selectedContent| |Shape|ViewportRect|x、y、width、height| |Shape|strokeDashOffset|value| |Shape|strokeMiterLimit|value| |Shape|strokeWidth|value| |SwipeRefresher|-|content|
适配指导
若有继承派生或者读取赋值则需要在定义处增加Resource类型支持,否则无需适配。
@Entry
@Component
struct Index {
searchOptions: SearchOptions = { value: '123456'}
// @State text: string = this.searchOptions.value; //原定义
@State text: ResourceStr|undefined = this.searchOptions.value; //适配定义
build() {
Column() {
Scroll() {
Column({ space: 20 }) {
Search(this.searchOptions)
Text(this.text)
}.alignItems(HorizontalAlign.Center).width('100%').margin({ top: 20 })
}
}
}
}
cl.arkui.2 width和height支持的matchParent接口规格变更
访问级别
公开接口
变更原因
接口能力增强,使能Row和Column在设置matchParent时仅适应父组件内容区大小。
变更影响
此变更不涉及应用适配。
变更前:Row和Column的子组件matchParent时,会将其大小设置为父组件包含padding、border以及safeAreaPadding后的大小。
变更后:Row和Column的子组件matchParent时,会将其大小设置为父组件不包含padding、border以及safeAreaPadding后的大小,即与父组件内容区大小保持一致。
例如:运行以下示例,进入页面后,观察matchParent的最终结果。
@Entry
@Component
struct Demo {
build() {
Column(){
Row().width(LayoutPolicy.matchParent).height(LayoutPolicy.matchParent).backgroundColor('rgb(0, 74, 175)')
}.width(200).height(200).padding(20).backgroundColor('rgb(39, 135, 217)')
}
}
变更前后效果如下:
|变更前|变更后|
|–|–|
||
|
起始API Level
15
变更发生版本
从OpenHarmony SDK 6.0.0.32开始。
变更的接口/组件
width(widthValue: Length|LayoutPolicy): T
height(heightValue: Length|LayoutPolicy): T
适配指导
默认行为变更,无需适配。
cl.arkui.3 GridRow组件columns参数和GridCol组件span参数默认值变更
访问级别
公开接口
变更原因
栅格组件默认值原规格容易引发页面压缩问题,变更后提升组件易用性。
变更影响
该变更不涉及应用适配。
变更前 | 变更后 |
---|---|
GridRow中columns不配置时,默认值为12。 | GridRow中columns不配置时,columns使用默认值:{ xs: 2, sm: 4, md: 8, lg: 12, xl: 12, xxl: 12 } |
GridRow中columns配置部分断点时,取已配置的更小断点的columns列数补全未配置的列数。若未配置更小断点的columns列数,取默认值12。 columns: {xs:2, md:4, lg:8} 等于配置 columns: {xs:2, sm:2, md:4, lg:8, xl:8, xxl:8} columns: {md:4, lg:8} 等于配置 columns: {xs:12, sm:12, md:4, lg:8, xl:8, xxl:8} |
GridRow中columns配置部分断点时,取已配置的更小断点的columns列数补全未配置的列数。若未配置更小断点的columns列数,取已配置的更大断点的columns列数补全未配置的列数。columns: {xs:2, md:4, lg:8} 等于配置 columns: {xs:2, sm:2, md:4, lg:8, xl:8, xxl:8} columns: {md:4, lg:8} 等于配置 columns: {xs:4, sm:4, md:4, lg:8, xl:8, xxl:8} |
GridCol中span配置部分断点时,取已配置的更小断点的span列数补全未配置的列数。若未配置更小断点的span列数,取默认值1。 span: {xs:2, md:4, lg:8} 等于配置 span: {xs:2, sm:2, md:4, lg:8, xl:8, xxl:8} span: {md:4, lg:8} 等于配置 span: {xs:1, sm:1, md:4, lg:8, xl:8, xxl:8} |
GridCol中span配置部分断点时,取已配置的更小断点的span列数补全未配置的列数。若未配置更小断点的span列数,取已配置的更大断点的span列数补全未配置的列数。 span: {xs:2, md:4, lg:8} 等于配置 span: {xs:2, sm:2, md:4, lg:8, xl:8, xxl:8} span: {md:4, lg:8} 等于配置 span: {xs:4, sm:4, md:4, lg:8, xl:8, xxl:8} |
起始API Level
9
变更发生版本
从OpenHarmony SDK 6.0.0.32开始。
变更的接口/组件
GridRow组件、GridCol组件。
适配指导
默认行为变更,无需适配,但应注意变更后的默认效果是否符合开发者预期,可手动配置所有不同宽度设备下GridRow组件的栅格列数和GridCol组件所占列数,避免使用默认值或默认补全的布局效果不符合预期。
@Entry
@Component
struct Example {
@State bgColors: ResourceColor[] =
['rgb(213,213,213)', 'rgb(150,150,150)', 'rgb(0,74,175)', 'rgb(39,135,217)', 'rgb(61,157,180)', 'rgb(23,169,141)',
'rgb(255,192,0)', 'rgb(170,10,33)'];
@State currentBp: string = "unknown"
build() {
Column() {
Column() {
Text(this.currentBp)
GridRow({
columns: {
xs: 2, // 窗口宽度落入xs断点上,栅格栅格容器每一行分为2列。
sm: 4, // 窗口宽度落入sm断点上,栅格栅格容器每一行分为4列。
md: 8, // 窗口宽度落入md断点上,栅格栅格容器每一行分为8列。
lg: 12, // 窗口宽度落入lg断点上,栅格栅格容器每一行分为12列。
xl: 12, // 窗口宽度落入xl断点上,栅格栅格容器每一行分为12列。
xxl: 12 // 窗口宽度落入xxl断点上,栅格栅格容器每一行分为12列。
},
breakpoints: {
value: ['320vp', '600vp', '840vp', '1440vp', '1600vp'],
reference: BreakpointsReference.WindowSize
}
}) {
ForEach(this.bgColors, (color: ResourceColor, index?: number|undefined) => {
GridCol({
span: {
xs: 1, // 窗口宽度落入xs断点上,栅格子容器宽度占1列。
sm: 2, // 窗口宽度落入sm断点上,栅格子容器宽度占2列。
md: 4, // 窗口宽度落入md断点上,栅格子容器宽度占4列。
lg: 6, // 窗口宽度落入lg断点上,栅格子容器宽度占6列。
xl: 6, // 窗口宽度落入xl断点上,栅格子容器宽度占6列。
xxl: 6 // 窗口宽度落入xxl断点上,栅格子容器宽度占6列。
}
}) {
Row() {
Text(`${index}`)
}.width("100%").height('50vp')
}.backgroundColor(color)
})
}
.onBreakpointChange((breakpoint) => {
this.currentBp = breakpoint
})
}.width('90%')
}.width('100%')
}
}
cl.arkui.2 UI Input相关NDK接口行为变更
访问级别
公开接口
变更原因
修复相关接口在如下场景下的返回值异常问题,以确保开发者能够获取正确的结果:
- 鼠标滚轮或触控板双指滑动;
- 通过Enter键触发点击或单指轻触手势;
- 使用外设键盘等设备与焦点窗口交互;
- 组件节点接收按键事件;
- 为XComponent组件注册自定义事件拦截回调后进行触摸测试;
- 绑定组件接收轴事件;
- 为XComponent组件注册UI输入事件回调后接收UI输入事件。
变更影响
此变更为非兼容性变更。
变更前与变更后的变化说明:
|接口名称 |起始版本|说明 |变更原因 |变更影响 |
|————————————————————-|——–|——————————————————–|——————————————————|————————————————————|
|int32_t
OH_ArkUI_UIInputEvent_GetType(const ArkUI_UIInputEvent* event);|12 |获取该裸事件对应的枚举类型ArkUI_UIInputEvent_Type,变更前包括触控、轴、鼠标这几种裸事件|遗漏支持key事件类型 |当传入的参数为key事件时,获取的类型为0,修复后可获取正确值(ARKUI_UIINPUTEVENT_TYPE_KEY)。|
|int32_t
OH_ArkUI_UIInputEvent_GetAction(const ArkUI_UIInputEvent* event);|12 |获取裸事件对应的事件action类型,例如,如果裸事件为触控事件,则获取到的事件action类型为DOWN、MOVE、UP、CANCEL之一;若裸事件类型为鼠标事件,则为PRESS、RELEASE、MOVE、CANCEL之一;若为轴事件,则为BEGIN、UPDATE、END、CANCEL之一。因此,action类型的定义和含义存在差异,但在接口设计上,将返回值统一为int类型,以消除这些差异。|遗漏支持axis事件类型 |当传入的参数为axis事件时,获取的类型为0,修复后可获取正确值(BEGIN/UPDATE/END/CANCEL)。|
|int32_t
OH_ArkUI_UIInputEvent_GetDeviceId(const ArkUI_UIInputEvent* event);|14 |获取当前输入事件的触发设备ID | 实现遗漏通过键盘Enter键触发的click事件场景。|1. 仅TAB键走焦场景有可能触发该场景;
2.变更前应用无法获取正确的当前输入事件的触发设备ID,修复后可获取正确的当前输入事件的触发设备ID。|
起始API Level
API 12
变更发生版本
从OpenHarmony 6.0.0.32版本开始。
变更的接口/组件
int32_t OH_ArkUI_UIInputEvent_GetType(const ArkUI_UIInputEvent* event);
int32_t OH_ArkUI_UIInputEvent_GetAction(const ArkUI_UIInputEvent* event);
int32_t OH_ArkUI_UIInputEvent_GetDeviceId(const ArkUI_UIInputEvent* event);
适配指导
变更前的接口遗漏对部分事件的支持,导致输入这些事件时会返回默认值,与预期不符;修复后的接口已支持这些遗漏的事件,调用时可获取正确的返回值,应用无需特殊适配。
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ArkTS方舟编程语言Changelog
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦