diff --git a/zh-cn/application-dev/reference/arkui-js/figures/zh-cn-attributes.gif b/zh-cn/application-dev/reference/arkui-js/figures/zh-cn-attributes.gif new file mode 100644 index 0000000000000000000000000000000000000000..528b70859a14ea9988a5eac95e40b203149e05ec Binary files /dev/null and b/zh-cn/application-dev/reference/arkui-js/figures/zh-cn-attributes.gif differ diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-common-attributes.md b/zh-cn/application-dev/reference/arkui-js/js-components-common-attributes.md index d4bd6ddb2e4ebe49e6d21e3c39bc49e3dc07b497..986ffbdd8aa4c79c45c7d0303d4e53b7237ceff8 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-components-common-attributes.md +++ b/zh-cn/application-dev/reference/arkui-js/js-components-common-attributes.md @@ -32,3 +32,71 @@ > **说明:** > 属性和样式不能混用,不能在属性字段中进行样式设置。 + +## 示例 + +```html + +
+ + + + {{ $item.value }} + + +
+``` + +```css +/* xxx.css */ +#container { + flex-direction: column; + width: 100%; + margin-top: 10px; +} +.text { + font-size: 50px; + font-weight: 500; + margin-left: 12px; +} +.listItem { + width: 100%; + height: 100px; + line-height: 60px; + border-bottom: 1px solid #DEDEDE; + font-size: 20px; +} +.btn{ + width: 280px; + font-size: 26px; + margin: 10px 0; +} +``` + +```js +/* xxx.js */ +export default { + data: { + visible: true, + display: true, + title: "", + i: 4, + array: [ + {"value": "列表文本0"}, + {"value": "列表文本1"}, + {"value": "列表文本2"}, + {"value": "列表文本3"}, + ], + }, + toggleShow: function() { + this.array.push({"value": "列表文本" + this.i }) + this.i++ + }, + toggleDisplay: function() { + this.display = !this.display + }, +} +``` + +![zh-cn-attributes](figures/zh-cn-attributes.gif) \ No newline at end of file diff --git a/zh-cn/application-dev/reference/arkui-js/js-components-common-events.md b/zh-cn/application-dev/reference/arkui-js/js-components-common-events.md index c0701a8c5e8de03c21587b65020e5afb8d5c3cd3..9a5db24f0ab945ebbf01b0eb185c1a8c0e7124ae 100644 --- a/zh-cn/application-dev/reference/arkui-js/js-components-common-events.md +++ b/zh-cn/application-dev/reference/arkui-js/js-components-common-events.md @@ -13,29 +13,29 @@ 相对于私有事件,大部分组件都可以绑定如下事件。 -| 名称 | 参数 | 描述 | 是否支持冒泡 | -| ------------------------ | ---------- | ---------------------------------------- | ---------------------------------------- | -| touchstart | TouchEvent | 手指刚触摸屏幕时触发该事件。TouchEvent具体可参考表2 。 | 是5+ | -| touchmove | TouchEvent | 手指触摸屏幕后移动时触发该事件。 | 是5+ | -| touchcancel | TouchEvent | 手指触摸屏幕中动作被打断时触发该事件。 | 是5+ | -| touchend | TouchEvent | 手指触摸结束离开屏幕时触发该事件。 | 是5+ | -| click | - | 点击动作触发该事件。 | 是6+ | -| doubleclick7+ | - | 双击动作触发该事件 | 否
从API Version 9 开始支持冒泡。 | -| longpress | - | 长按动作触发该事件。 | 否
从API Version 9 开始支持冒泡。 | -| swipe5+ | SwipeEvent | 组件上快速滑动后触发该事件。 SwipeEvent具体可参考表4 。 | 否
从API Version 9 开始支持冒泡。 | -| attached6+ | - | 当前组件节点挂载在渲染树后触发。 | 否 | -| detached6+ | - | 当前组件节点从渲染树中移除后触发。 | 否 | -| pinchstart7+ | PinchEvent | 手指开始执行捏合操作时触发该事件。
PinchEvent具体可参考表5。 | 否 | -| pinchupdate7+ | PinchEvent | 手指执行捏合操作过程中触发该事件。 | 否 | -| pinchend7+ | PinchEvent | 手指捏合操作结束离开屏幕时触发该事件。 | 否 | -| pinchcancel7+ | PinchEvent | 手指捏合操作被打断时触发该事件。 | 否 | -| dragstart7+ | DragEvent | 用户开始拖拽时触发该事件。
DragEvent具体可参考表6。 | 否 | -| drag7+ | DragEvent | 拖拽过程中触发该事件。 | 否 | -| dragend7+ | DragEvent | 用户拖拽完成后触发。 | 否 | -| dragenter7+ | DragEvent | 进入释放目标时触发该事件。 | 否 | -| dragover7+ | DragEvent | 在释放目标内拖动时触发。 | 否 | -| dragleave7+ | DragEvent | 离开释放目标区域时触发。 | 否 | -| drop7+ | DragEvent | 在可释放目标区域内释放时触发。 | 否 | +| 名称 | 参数 | 描述 | 是否支持冒泡 | 是否支持捕获 | +| ------------------------ | ---------- | ------------------------------------------------------------ | ----------------------------------------------------- | --------------- | +| touchstart | TouchEvent | 手指刚触摸屏幕时触发该事件。TouchEvent具体可参考表2 。 | 是5+ | 是5+ | +| touchmove | TouchEvent | 手指触摸屏幕后移动时触发该事件。 | 是5+ | 是5+ | +| touchcancel | TouchEvent | 手指触摸屏幕中动作被打断时触发该事件。 | 是5+ | 是5+ | +| touchend | TouchEvent | 手指触摸结束离开屏幕时触发该事件。 | 是5+ | 是5+ | +| click | - | 点击动作触发该事件。 | 是6+ | 否 | +| doubleclick7+ | - | 双击动作触发该事件 | 否
从API Version 9 开始支持冒泡。 | 否 | +| longpress | - | 长按动作触发该事件。 | 否
从API Version 9 开始支持冒泡。 | 否 | +| swipe5+ | SwipeEvent | 组件上快速滑动后触发该事件。 SwipeEvent具体可参考表4 。 | 否
从API Version 9 开始支持冒泡。 | 否 | +| attached6+ | - | 当前组件节点挂载在渲染树后触发。 | 否 | 否 | +| detached6+ | - | 当前组件节点从渲染树中移除后触发。 | 否 | 否 | +| pinchstart7+ | PinchEvent | 手指开始执行捏合操作时触发该事件。
PinchEvent具体可参考表5。 | 否 | 否 | +| pinchupdate7+ | PinchEvent | 手指执行捏合操作过程中触发该事件。 | 否 | 否 | +| pinchend7+ | PinchEvent | 手指捏合操作结束离开屏幕时触发该事件。 | 否 | 否 | +| pinchcancel7+ | PinchEvent | 手指捏合操作被打断时触发该事件。 | 否 | 否 | +| dragstart7+ | DragEvent | 用户开始拖拽时触发该事件。
DragEvent具体可参考表6。 | 否 | 否 | +| drag7+ | DragEvent | 拖拽过程中触发该事件。 | 否 | 否 | +| dragend7+ | DragEvent | 用户拖拽完成后触发。 | 否 | 否 | +| dragenter7+ | DragEvent | 进入释放目标时触发该事件。 | 否 | 否 | +| dragover7+ | DragEvent | 在释放目标内拖动时触发。 | 否 | 否 | +| dragleave7+ | DragEvent | 离开释放目标区域时触发。 | 否 | 否 | +| drop7+ | DragEvent | 在可释放目标区域内释放时触发。 | 否 | 否 | > **说明:** diff --git a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md index 931411f1029df4f7abdc68e53ae7cbf619c8ee7f..156b017017cff2248decf6a96df8a2274ae67ace 100644 --- a/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md +++ b/zh-cn/application-dev/reference/arkui-ts/Readme-CN.md @@ -86,6 +86,7 @@ - [Web](ts-basic-components-web.md) - [XComponent](ts-basic-components-xcomponent.md) - 容器组件 + - [AbilityComponent](ts-container-ability-component.md) - [AlphabetIndexer](ts-container-alphabet-indexer.md) - [Badge](ts-container-badge.md) - [Column](ts-container-column.md) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md new file mode 100644 index 0000000000000000000000000000000000000000..d6717d2d95ec031d03f99441c2504acc2dd0d15d --- /dev/null +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-ability-component.md @@ -0,0 +1,114 @@ +# AbilityComponent + +> **说明:** +> +> 该组件从API Version 9开始支持。 +> +> 本组件均为系统接口,三方应用不支持调用。 + + +独立显示Ability的容器。 + +## 使用约束 + +使用AbilityComponent必须是平台签名使用,并申请权限。 + +AbilityComponent为独立层次渲染,不能再之上叠加其他显示内容。 + +AbilityComponent不支持处理输入事件,事件不经过当前Ability,直接分发给内部的Ability处理。 + +AbilityComponent需设置且只能设置width、height,且width、height不支持动态更新。 + +被启动的Ability必须是resizeable。 + +被启动的Ability需要设置为多任务栏不显示。 + +## 权限列表 + +ohos.permission.INFUSE_EVENTS + +ohos.permission.CONTROL_ABILITY_STACKS + +ohos.permission.INTEGRATED_ABILITY + +ohos.permission.INTEGRATED_INTERIOR_WINDOW + + +## 子组件 + +无 + + +## 接口 + +AbilityComponent(value: {want : Want, controller? : AbilityController}) + +- 参数 + | 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | + | -------- | -------- | -------- | -------- | -------- | + | want | [Want](../../reference/apis/js-apis-application-Want.md) | 是 | - | 默认加载的Ability描述。 | + | controller | [AbilityController](#abilityController) | 否 | - | Ability控制器。 | + + +## 事件 + +| 名称 | 功能描述 | +| -------- | -------- | +| onReady() => void | AbilityComponent环境启动完成时的回调,之后可使用AbilityComponent的方法。 | +| onDestroy() => void | AbilityComponent环境销毁时的回调。 | +| onAbilityCreated(name: string) => void | 加载Ability时触发,name为Ability名。 | +| onAbilityMoveToFont() => void | 当Ability移动到前台时触发。 | +| onAbilityWillRemove() => void | Ability移除之前触发。 | + +## AbilityController + +Ability控制器,提供AbilityComponent的控制接口。 + +| 名称 | 功能描述 | +| --------------------------------------- | ------------------------------------------------------------ | +| startAbility() => want | 在AbilityComponent内部加载Ability。
want:要加载的Ability描述信息。 | +| preformBackPress() => void | 在AbilityComponent内部执行返回操作。 | +| getStackCount() => void | 获取AbilityComponent内部任务栈中任务的个数。 | + + +## 示例 + +```ts +// xxx.ets +@Entry +@Component +struct MyComponent { + @State controller: AbilityController = new AbilityController() + + build() { + Column() { + AbilityComponent({ + want: { + bundleName: '', + abilityName: '' + }, + controller: this.controller + }) + .onReady(() => { + console.log('AbilityComponent ready'); + }) + .onDestory(() => { + console.log('AbilityComponent destory'); + }) + Button("Start New") + .onClick(() => { + this.controller.startAbility({ + bundleName: '', + abilityName: '' + }); + }) + Button("Back") + .onClick(() => { + if (this.controller.getStacjCount() > 1) { + this.controller.preformBackPress(); + } + }) + } + } +} +``` diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md b/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md index 86e054475822bfc9b21f14af8d46a138e2a1b57a..5ff8def81916cc2620824bca29910b1b74457e74 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-page-transition-animation.md @@ -23,10 +23,10 @@ - RouteType枚举说明 - | 名称 | 描述 | - | ---- | ---------------------------------------- | - | Pop | PageA跳转到PageB时,PageA为Exit+Push,PageB为Enter+Push。 | - | Push | PageB返回至PageA时,PageA为Enter+Pop,PageB为Exit+Pop。 | + | 名称 | 描述 | + | ---- | ---------------- | + | Pop | 重定向指定页面。 | + | Push | 跳转到下一页面。 | ## 属性 diff --git a/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md b/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md index 73f9e1e94a07bb851e3fada592e12d7dd299bb5b..ab86d632486c287664da6a25e227fb5b383e31c5 100644 --- a/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md +++ b/zh-cn/application-dev/ui/ts-other-states-observed-objectlink.md @@ -41,7 +41,8 @@ ### 案例1 -``` +```ts +//父组件ViewB中的类对象ClassB,其包含的对象ClassA与子组件ViewA数据同步时,通过ObjectLink将数据c值的变化状态通知给父组件同步变化。 @Observed class ClassA { public name : string; @@ -77,7 +78,7 @@ struct ViewA { .width(100) .margin(2) .onClick(() => { - this.a = new ClassA(0); // ERROR, this.a is immutable + this.a = new ClassA(0); // 错误:ObjectLink装饰的变量a是不可变的 }) } } @@ -118,7 +119,8 @@ struct ViewB { ### 案例2 -``` +```ts +//父组件ViewB中的类对象ClassA与子组件ViewA保持数据同步时,可以使用@ObjectLink和@Observed,绑定该数据对象的父组件和其他子组件同步更新 var nextID: number = 0; @Observed class ClassA { @@ -142,7 +144,7 @@ struct ViewA { .onClick(() => { this.a.c += 1; }) - } + }.margin({ top: 10 }) } } @@ -161,14 +163,17 @@ struct ViewB { ViewA({label: `ViewA this.arrA[last]`, a: this.arrA[this.arrA.length-1]}) Button(`ViewB: reset array`) + .margin({ top: 10 }) .onClick(() => { this.arrA = [ new ClassA(0), new ClassA(0) ]; }) Button(`ViewB: push`) + .margin({ top: 10 }) .onClick(() => { this.arrA.push(new ClassA(0)) }) Button(`ViewB: shift`) + .margin({ top: 10 }) .onClick(() => { this.arrA.shift() })