@deveco-test/deveco-code 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/package.json +6 -5
  3. package/resources/deveco/skills/customize-deveco/.deveco-builtin +1 -0
  4. package/resources/deveco/skills/customize-deveco/SKILL.md +469 -0
  5. package/resources/deveco/skills/deveco-cli/.deveco-builtin +1 -0
  6. package/resources/deveco/skills/deveco-cli/SKILL.md +240 -0
  7. package/resources/deveco/skills/hmos-arkui-develop-skill/.deveco-builtin +1 -0
  8. package/resources/deveco/skills/hmos-arkui-develop-skill/SKILL.md +83 -0
  9. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/01-layout.md +629 -0
  10. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/02-basic-components.md +645 -0
  11. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/03-data-display.md +81 -0
  12. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/04-selectors.md +76 -0
  13. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/05-media.md +60 -0
  14. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/06-advanced.md +32 -0
  15. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/07-security.md +30 -0
  16. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/08-state-decorators.md +79 -0
  17. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/09-animation.md +111 -0
  18. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/10-gesture.md +59 -0
  19. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/11-dialog-menu.md +92 -0
  20. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/12-navigation.md +81 -0
  21. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/13-rendering.md +22 -0
  22. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/14-extension.md +22 -0
  23. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/15-theme-style.md +10 -0
  24. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/16-enums.md +87 -0
  25. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/17-resources.md +1379 -0
  26. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/18-error-code.md +24 -0
  27. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-apis/_index.md +75 -0
  28. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/00-arkts-syntax.md +229 -0
  29. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/01-import.md +116 -0
  30. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/02-uicontext.md +56 -0
  31. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/03-component.md +105 -0
  32. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/04-build.md +41 -0
  33. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/05-state.md +300 -0
  34. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/06-rendering.md +67 -0
  35. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/07-attribute-params.md +219 -0
  36. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/08-navigation.md +102 -0
  37. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/09-dialog.md +72 -0
  38. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/10-style.md +90 -0
  39. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/11-extension.md +54 -0
  40. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/12-layout.md +69 -0
  41. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/13-performance.md +27 -0
  42. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/14-deprecated.md +28 -0
  43. package/resources/deveco/skills/hmos-arkui-develop-skill/references/quick-rules/_index.md +79 -0
  44. package/resources/deveco/skills/hmos-runtime-fix-skill/.deveco-builtin +1 -0
  45. package/resources/deveco/skills/hmos-runtime-fix-skill/SKILL.md +187 -0
  46. package/resources/deveco/skills/hmos-runtime-fix-skill/SKILL_CN.md +160 -0
  47. package/resources/deveco/skills/hmos-runtime-fix-skill/evals/evals.json +17 -0
  48. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/businesserror_patterns.md +17 -0
  49. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/error_patterns.md +31 -0
  50. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/fault-mode-library.md +57 -0
  51. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/outofmemoryerror_patterns.md +19 -0
  52. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/rangeerror_patterns.md +15 -0
  53. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/referenceerror_patterns.md +23 -0
  54. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/syntaxerror_patterns.md +14 -0
  55. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/typeerror_patterns.md +19 -0
  56. package/resources/deveco/skills/hmos-runtime-fix-skill/reference/urierror_patterns.md +17 -0
  57. package/resources/deveco/skills/hmos-runtime-fix-skill/scripts/collect-hilog.mjs +120 -0
  58. package/resources/deveco/skills/hmos-runtime-fix-skill/scripts/jscrash-report.mjs +138 -0
  59. package/resources/deveco/skills/hmos-runtime-fix-skill/scripts/parse-jscrash-log.mjs +126 -0
  60. package/resources/deveco/skills/hmos-runtime-fix-skill/scripts/shared/deveco-cli.mjs +79 -0
  61. package/resources/deveco/skills/hmos-runtime-fix-skill/scripts/shared/jscrash-parse.mjs +389 -0
  62. package/resources/deveco/skills/hmos-runtime-fix-skill/scripts/shared/utils.mjs +27 -0
@@ -0,0 +1,629 @@
1
+ ## 1. 布局容器
2
+
3
+
4
+ > **组件索引**:`Row`、`Column`、`Flex`、`List`、`ListItem`、`ListItemGroup`、`Grid`、`GridRow`、`GridCol`、`WaterFlow`、`Scroll`、`Tabs`、`TabContent`、`Swiper`、`Stack`、`RelativeContainer`、`SideBarContainer`、`Panel`、`Refresh`、`Badge`、`Counter`、`AlphabetIndexer`、`其他容器速查`
5
+
6
+ ### Row
7
+
8
+ 行容器,子组件水平排列。
9
+
10
+ **构造:** `Row(options?: RowOptions)`
11
+
12
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
13
+ |------|------|------|--------|------|
14
+ | space | string \| number | 否 | — | 子元素水平间距 |
15
+
16
+ **属性方法:**
17
+
18
+ | 方法 | 签名 | 默认值 | 说明 |
19
+ |------|------|--------|------|
20
+ | .alignItems | `.alignItems(value: VerticalAlign)` | Center | 垂直对齐 |
21
+ | .justifyContent | `.justifyContent(value: FlexAlign)` | Start | 水平排列方式 |
22
+ | .reverse | `.reverse(isReversed: boolean)` | false | 反转子元素顺序 |
23
+
24
+ ---
25
+
26
+ ### Column
27
+
28
+ 列容器,子组件垂直排列。
29
+
30
+ **构造:** `Column(options?: ColumnOptions)`
31
+
32
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
33
+ |------|------|------|--------|------|
34
+ | space | string \| number | 否 | — | 子元素垂直间距(Resource 仅 ColumnOptionsV2 支持) |
35
+
36
+ **属性方法:**
37
+
38
+ | 方法 | 签名 | 默认值 | 说明 |
39
+ |------|------|--------|------|
40
+ | .alignItems | `.alignItems(value: HorizontalAlign)` | Center | 水平对齐 |
41
+ | .justifyContent | `.justifyContent(value: FlexAlign)` | Start | 垂直排列方式 |
42
+ | .reverse | `.reverse(isReversed: boolean)` | false | 反转子元素顺序 |
43
+
44
+ ---
45
+
46
+ ### Flex
47
+
48
+ 弹性布局容器。
49
+
50
+ **构造:** `Flex(value?: FlexOptions)`
51
+
52
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
53
+ |------|------|------|--------|------|
54
+ | direction | FlexDirection | 否 | Row | 主轴方向 |
55
+ | wrap | FlexWrap | 否 | NoWrap | 是否换行 |
56
+ | justifyContent | FlexAlign | 否 | Start | 主轴对齐 |
57
+ | alignItems | ItemAlign | 否 | Start | 交叉轴对齐 |
58
+ | alignContent | FlexAlign | 否 | Start | 多行对齐 |
59
+ | space | FlexSpaceOptions | 否 | — | API 12+,`{main: LengthMetrics, cross: LengthMetrics}`,LengthMetrics 需从 `@kit.ArkUI` import |
60
+
61
+ ---
62
+
63
+ ### List
64
+
65
+ 列表容器,支持懒加载和滚动。
66
+
67
+ **构造:** `List(options?: ListOptions)`
68
+
69
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
70
+ |------|------|------|--------|------|
71
+ | initialIndex | number | 否 | 0 | 初始显示项索引 |
72
+ | space | number \| string | 否 | 0 | 列表项间距 |
73
+ | scroller | Scroller | 否 | — | 滚动控制器 |
74
+
75
+ **属性方法:**
76
+
77
+ | 方法 | 签名 | 默认值 | 说明 |
78
+ |------|------|--------|------|
79
+ | .listDirection | `.listDirection(value: Axis)` | Vertical | 列表方向 |
80
+ | .divider | `.divider(value: ListDividerOptions \| null)` | — | 分割线 `{strokeWidth, color, startMargin, endMargin}` |
81
+ | .scrollBar | `.scrollBar(value: BarState)` | Auto | 滚动条状态 |
82
+ | .cachedCount | `.cachedCount(value: number)` | 0 | 预加载项数 |
83
+ | .lanes | `.lanes(value: number \| LengthConstrain, gutter?: Dimension)` | 1 | 列数,LengthConstrain={minLength,maxLength} |
84
+ | .edgeEffect | `.edgeEffect(value: EdgeEffect, options?)` | Spring | 边缘效果 |
85
+ | .chainAnimation | `.chainAnimation(value: boolean)` | false | API 12+ 联动动画 |
86
+ | .multiSelectable | `.multiSelectable(value: boolean)` | false | 鼠标多选 |
87
+ | .sticky | `.sticky(value: StickyStyle)` | None | 吸顶模式 |
88
+ | .nestedScroll | `.nestedScroll(value: NestedScrollOptions)` | - | API 10+ 嵌套滚动。`NestedScrollOptions = { scrollForward, scrollBackward }`,默认 `{SELF_ONLY, SELF_ONLY}`,模式见下 |
89
+
90
+ **事件:**
91
+
92
+ | 事件 | 签名 | 说明 |
93
+ |------|------|------|
94
+ | .onScrollIndex | `.onScrollIndex(event: (start: number, end: number, center: number) => void)` | 可见区域索引变化(API 19+ center 参数) |
95
+ | .onScroll | `.onScroll(event: (scrollOffset: number, scrollState: ScrollState) => void)` | 列表滚动事件(deprecated since 12,建议用 onDidScroll)。ScrollState 枚举:Idle / Scroll / Fling |
96
+ | .onReachStart | `.onReachStart(event: () => void)` | 到达起始位置 |
97
+ | .onReachEnd | `.onReachEnd(event: () => void)` | 到达末尾 |
98
+
99
+ > **NestedScrollMode(API 10+)枚举**:`SELF_ONLY`(0,默认,只自身滚不联动父) / `SELF_FIRST`(1,自身先滚到边缘再父滚) / `PARENT_FIRST`(2,父先滚到边缘再自身滚) / `PARALLEL`(3,父子同时滚)。`scrollForward`=往末尾端、`scrollBackward`=往起始端。
100
+
101
+ ---
102
+
103
+ ### ListItem
104
+
105
+ 列表项组件,作为 List 的子组件。
106
+
107
+ **构造:** `ListItem(options?: ListItemOptions)`
108
+
109
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
110
+ |------|------|------|--------|------|
111
+ | swipeAction | SwipeActionOptions | 否 | — | 滑动操作配置 |
112
+ | style | ListItemStyle | 否 | NONE | API 10+ 卡片样式枚举(NONE / CARD) |
113
+
114
+ **SwipeActionOptions:**
115
+
116
+ | 参数 | 类型 | 必填 | 说明 |
117
+ |------|------|------|------|
118
+ | start | CustomBuilder \| SwipeActionItem | 否 | 向右滑动时左侧露出的组件 |
119
+ | end | CustomBuilder \| SwipeActionItem | 否 | 向左滑动时右侧露出的组件 |
120
+ | edgeEffect | SwipeEdgeEffect | 否 | Spring(可继续滑)/ None(到边界停) |
121
+ | onOffsetChange | (offset: number) => void | 否 | API 11+ 滑动偏移变化回调 |
122
+
123
+ **SwipeActionItem(API 10+):**
124
+
125
+ | 参数 | 类型 | 必填 | 说明 |
126
+ |------|------|------|------|
127
+ | builder | CustomBuilder | 是 | 划出组件内容 |
128
+ | actionAreaDistance | Length | 否 | 长距删除阈值,默认 56vp |
129
+ | onAction | () => void | 否 | 进入删除区后松手触发 |
130
+ | onEnterActionArea | () => void | 否 | 进入删除区时触发 |
131
+ | onExitActionArea | () => void | 否 | 退出删除区时触发 |
132
+
133
+ **属性方法:**
134
+
135
+ | 方法 | 签名 | 默认值 | 说明 |
136
+ |------|------|--------|------|
137
+ | .swipeAction | `.swipeAction(value: SwipeActionOptions)` | — | 滑动删除/操作 |
138
+
139
+ ---
140
+
141
+ ### ListItemGroup
142
+
143
+ 列表项分组。
144
+
145
+ **构造:** `ListItemGroup(options?: ListItemGroupOptions)`
146
+
147
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
148
+ |------|------|------|--------|------|
149
+ | header | CustomBuilder | 否 | — | 分组头部 |
150
+ | footer | CustomBuilder | 否 | — | 分组尾部 |
151
+ | space | number \| string | 否 | 0 | 列表项间距 |
152
+
153
+ > **注意:ListItemGroupOptions 构造参数没有 `divider` 属性。** 分割线通过 ListItemGroup 的 `.divider()` 属性方法设置,签名与 List 的 `.divider()` 相同(`ListDividerOptions | null`)。
154
+
155
+ ---
156
+
157
+ ### Grid
158
+
159
+ 网格容器。
160
+
161
+ **构造:** `Grid(scroller?: Scroller, layoutOptions?: GridLayoutOptions)`
162
+
163
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
164
+ |------|------|------|--------|------|
165
+ | scroller | Scroller | 否 | — | 滚动控制器 |
166
+ | layoutOptions | GridLayoutOptions | 否 | — | 布局选项 |
167
+
168
+ **GridLayoutOptions:**
169
+
170
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
171
+ |------|------|------|--------|------|
172
+ | regularSize | [number, number] | 否 | [1, 1] | 规则项占位尺寸 |
173
+ | irregularIndexes | number[] | 否 | — | 不规则项索引 |
174
+ | onGetIrregularSizeByIndex | (index) => [number, number] | 否 | — | 获取不规则项尺寸 |
175
+ | onGetRectByIndex | (index) => [number, number, number, number] | 否 | — | API 11+ |
176
+
177
+ **属性方法:**
178
+
179
+ | 方法 | 签名 | 默认值 | 说明 |
180
+ |------|------|--------|------|
181
+ | .columnsTemplate | `.columnsTemplate(value: string)` | — | 列模板,如 '1fr 1fr 2fr' |
182
+ | .rowsTemplate | `.rowsTemplate(value: string)` | — | 行模板 |
183
+ | .columnsGap | `.columnsGap(value: Length)` | 0 | 列间距 |
184
+ | .rowsGap | `.rowsGap(value: Length)` | 0 | 行间距 |
185
+ | .scrollBar | `.scrollBar(value: BarState)` | Auto | 滚动条 |
186
+ | .cachedCount | `.cachedCount(value: number)` | 0 | 缓存项数 |
187
+ | .editMode | `.editMode(value: boolean)` | false | 编辑模式 |
188
+ | .edgeEffect | `.edgeEffect(value: EdgeEffect, options?)` | None | 边缘效果 |
189
+
190
+ **事件:**
191
+
192
+ | 事件 | 签名 | 说明 |
193
+ |------|------|------|
194
+ | .onScrollIndex | `.onScrollIndex(event: (first: number, last: number) => void)` | 可见区域索引变化 |
195
+ | .onItemDragStart | `.onItemDragStart(event: (event: ItemDragInfo, itemIndex: number) => CustomBuilder)` | 拖拽开始,返回自定义拖拽预览 |
196
+ | .onItemDrop | `.onItemDrop(event: (event, itemIndex) => void)` | 拖拽释放 |
197
+
198
+ ---
199
+
200
+ ### GridRow
201
+
202
+ 响应式网格行容器。
203
+
204
+ **构造:** `GridRow(option?: GridRowOptions)`
205
+
206
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
207
+ |------|------|------|--------|------|
208
+ | columns | number \| GridRowColumnOption | 否 | 12 | 列数 |
209
+ | gutter | Length \| GutterOption | 否 | 0 | 间距,GutterOption:`{ x?: Length \| GridRowSizeOption, y?: Length \| GridRowSizeOption }`(x=水平间距,y=垂直间距,支持响应式断点) |
210
+ | breakpoints | BreakPoints | 否 | {value:["320vp","600vp","840vp"]} | 断点 |
211
+ | direction | GridRowDirection | 否 | Row | 排列方向 |
212
+
213
+ **属性方法:**
214
+
215
+ | 方法 | 签名 | 默认值 | 说明 |
216
+ |------|------|--------|------|
217
+ | .alignItems | `.alignItems(value: ItemAlign)` | Start | 对齐方式 |
218
+ | .onBreakpointChange | `.onBreakpointChange(callback: (breakpoints) => void)` | — | 断点变化回调 |
219
+
220
+ ---
221
+
222
+ ### GridCol
223
+
224
+ 响应式网格列容器,作为 GridRow 的子组件。
225
+
226
+ **构造:** `GridCol(option?: GridColOptions)`
227
+
228
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
229
+ |------|------|------|--------|------|
230
+ | span | number \| GridColColumnOption | 否 | 1 | 占列数 |
231
+ | offset | number \| GridColColumnOption | 否 | 0 | 偏移列数 |
232
+ | order | number \| GridColColumnOption | 否 | 0 | 排列顺序 |
233
+
234
+ ---
235
+
236
+ ### WaterFlow
237
+
238
+ 瀑布流容器。
239
+
240
+ **构造:** `WaterFlow(options?: WaterFlowOptions)`
241
+
242
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
243
+ |------|------|------|--------|------|
244
+ | footer | CustomBuilder | 否 | — | 尾部组件 |
245
+ | scroller | Scroller | 否 | — | 滚动控制器 |
246
+ | sections | WaterFlowSections | 否 | — | API 12+ 分区配置 |
247
+ | layoutMode | WaterFlowLayoutMode | 否 | — | 布局模式 |
248
+
249
+ > **注意:不存在 WaterFlowController。** WaterFlow 不接受 controller 参数,不要尝试 import 或创建 WaterFlowController。
250
+
251
+ **属性方法:**
252
+
253
+ | 方法 | 签名 | 默认值 | 说明 |
254
+ |------|------|--------|------|
255
+ | .columnsTemplate | `.columnsTemplate(value: string)` | — | 列模板 |
256
+ | .rowsTemplate | `.rowsTemplate(value: string)` | — | 行模板 |
257
+ | .columnsGap | `.columnsGap(value: Length)` | 0 | 列间距 |
258
+ | .rowsGap | `.rowsGap(value: Length)` | 0 | 行间距 |
259
+ | .layoutMode | `.layoutMode(value: WaterFlowLayoutMode)` | — | 布局模式 |
260
+ | .cachedCount | `.cachedCount(value: number)` | 0 | 缓存数量 |
261
+
262
+ ---
263
+
264
+ ### Scroll
265
+
266
+ 滚动容器。
267
+
268
+ **构造:** `Scroll(scroller?: Scroller)`
269
+
270
+ **属性方法:**
271
+
272
+ | 方法 | 签名 | 默认值 | 说明 |
273
+ |------|------|--------|------|
274
+ | .scrollable | `.scrollable(value: ScrollDirection)` | Vertical | 滚动方向 |
275
+ | .scrollBar | `.scrollBar(value: BarState)` | Auto | 滚动条 |
276
+ | .scrollBarColor | `.scrollBarColor(value: ResourceColor)` | — | 滚动条颜色 |
277
+ | .scrollBarWidth | `.scrollBarWidth(value: number)` | 4vp | 滚动条宽度 |
278
+ | .edgeEffect | `.edgeEffect(value: EdgeEffect, options?)` | Spring | 边缘效果 |
279
+ | .scrollSnap | `.scrollSnap(value: ScrollSnapOptions)` | — | API 10+ 对齐 snapping。`ScrollSnapOptions = { snapAlign: ScrollSnapAlign, snapPagination?: Dimension \| Array<Dimension>, enableSnapToStart?: boolean, enableSnapToEnd?: boolean }` |
280
+ | .nestedScroll | `.nestedScroll(value: NestedScrollOptions)` | - | API 10+ 嵌套滚动,模式同 List。注意:Scroll 同时设 `enablePaging`/`scrollSnap` 且父组件优先(PARENT_FIRST)时嵌套不生效 |
281
+ | .enablePaging | `.enablePaging(value: boolean)` | false | API 11+ 分页滚动 |
282
+ | .friction | `.friction(value: number \| Resource)` | — | API 10+ 摩擦系数 |
283
+ | .enableScrollInteraction | `.enableScrollInteraction(value: boolean)` | true | 是否响应滚动 |
284
+
285
+ **事件:**
286
+
287
+ | 事件 | 签名 | 说明 |
288
+ |------|------|------|
289
+ | .onScroll | `.onScroll(event: (xOffset: number, yOffset: number) => void)` | 滚动事件(deprecated since 12,建议用 onWillScroll/onDidScroll) |
290
+ | .onScrollEdge | `.onScrollEdge(event: (side: Edge) => void)` | 到达边缘 |
291
+ | .onScrollStop | `.onScrollStop(event: () => void)` | 滚动停止 |
292
+
293
+ ---
294
+
295
+ ### Tabs
296
+
297
+ 标签页容器。
298
+
299
+ **构造:** `Tabs(options?: TabsOptions)`
300
+
301
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
302
+ |------|------|------|--------|------|
303
+ | barPosition | BarPosition | 否 | Start | 标签栏位置 |
304
+ | index | number | 否 | 0 | 初始页签索引 |
305
+ | controller | TabsController | 否 | — | 页签控制器 |
306
+
307
+ **属性方法:**
308
+
309
+ | 方法 | 签名 | 默认值 | 说明 |
310
+ |------|------|--------|------|
311
+ | .vertical | `.vertical(value: boolean)` | false | 是否竖向 |
312
+ | .scrollable | `.scrollable(value: boolean)` | true | 是否可滑动 |
313
+ | .barMode | `.barMode(value: BarMode, options?)` | Fixed | 标签栏模式 |
314
+ | .barWidth | `.barWidth(value: Length)` | — | 标签栏宽度 |
315
+ | .barHeight | `.barHeight(value: Length)` | — | 标签栏高度 |
316
+ | .animationDuration | `.animationDuration(value: number)` | 400 | 切换动画时长 |
317
+ | .divider | `.divider(value: DividerStyle \| null)` | — | 分割线 |
318
+
319
+ **事件:**
320
+
321
+ | 事件 | 签名 | 说明 |
322
+ |------|------|------|
323
+ | .onChange | `.onChange(event: (index: number) => void)` | 页签切换 |
324
+ | .onTabBarClick | `.onTabBarClick(event: (index: number) => void)` | 标签栏点击 |
325
+
326
+ ---
327
+
328
+ ### TabContent
329
+
330
+ 标签页内容,作为 Tabs 子组件。
331
+
332
+ **构造:** `TabContent()`
333
+
334
+ **属性方法:**
335
+
336
+ | 方法 | 签名 | 默认值 | 说明 |
337
+ |------|------|--------|------|
338
+ | .tabBar | `.tabBar(value: ResourceStr \| CustomBuilder \| SubTabBarStyle \| BottomTabBarStyle)` | — | 标签栏内容 |
339
+
340
+ ---
341
+
342
+ ### Swiper
343
+
344
+ 轮播容器。
345
+
346
+ **构造:** `Swiper(controller?: SwiperController)` — SwiperController 是全局类型,不需要 import
347
+
348
+ **属性方法:**
349
+
350
+ | 方法 | 签名 | 默认值 | 说明 |
351
+ |------|------|--------|------|
352
+ | .index | `.index(value: number)` | 0 | 初始索引 |
353
+ | .autoPlay | `.autoPlay(value: boolean)` | false | 自动播放 |
354
+ | .interval | `.interval(value: number)` | 3000 | 自动播放间隔(ms) |
355
+ | .indicator | `.indicator(value: DotIndicator \| DigitIndicator \| boolean)` | true | 指示器 |
356
+ | .loop | `.loop(value: boolean)` | true | 是否循环 |
357
+ | .vertical | `.vertical(value: boolean)` | false | 是否竖向 |
358
+ | .itemSpace | `.itemSpace(value: Length)` | 0 | 项间距 |
359
+ | .displayMode | `.displayMode(value: SwiperDisplayMode)` | Stretch | 显示模式 |
360
+ | .displayCount | `.displayCount(value: number \| SwiperAutoFill)` | 1 | 显示数量 |
361
+ | .effectMode | `.effectMode(value: EdgeEffect)` | Spring | 边缘效果 |
362
+ | .nestedScroll | `.nestedScroll(value: SwiperNestedScrollMode)` | — | API 11+ 嵌套滚动 |
363
+ | .disableSwipe | `.disableSwipe(value: boolean)` | false | 禁用滑动 |
364
+
365
+ > **DotIndicator 构造**:`new DotIndicator().itemWidth(n).itemHeight(n).selectedItemWidth(n).selectedItemHeight(n).color(color).selectedColor(color).maxDisplayCount(n)`
366
+ > **DigitIndicator 构造**:`new DigitIndicator().fontColor(color).selectedFontColor(color).digitFont({size, weight}).selectedDigitFont({size, weight})`
367
+
368
+ **事件:**
369
+
370
+ | 事件 | 签名 | 说明 |
371
+ |------|------|------|
372
+ | .onChange | `.onChange(event: (index: number) => void)` | 页面切换 |
373
+ | .onAnimationStart | `.onAnimationStart(event: (index, targetIndex) => void)` | 切换动画开始 |
374
+ | .onAnimationEnd | `.onAnimationEnd(event: (index) => void)` | 切换动画结束 |
375
+
376
+ ---
377
+
378
+ ### Stack
379
+
380
+ 层叠容器。
381
+
382
+ **构造:** `Stack(options?: StackOptions)`
383
+
384
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
385
+ |------|------|------|--------|------|
386
+ | alignContent | Alignment | 否 | Center | 子组件对齐方式 |
387
+
388
+ **属性方法:**
389
+
390
+ | 方法 | 签名 | 默认值 | 说明 |
391
+ |------|------|--------|------|
392
+ | .alignContent | `.alignContent(value: Alignment)` | Center | 子组件对齐方式 |
393
+
394
+ ---
395
+
396
+ ### RelativeContainer
397
+
398
+ 相对布局容器。
399
+
400
+ **构造:** `RelativeContainer()`
401
+
402
+ **属性方法:**
403
+
404
+ | 方法 | 签名 | 默认值 | 说明 |
405
+ |------|------|--------|------|
406
+ | .guideLine | `.guideLine(value: Array<GuideLineStyle>)` | — | API 12+ 参考线 |
407
+ | .barrier | `.barrier(value: Array<BarrierStyle>)` | — | API 12+ 屏障 |
408
+
409
+ ### RelativeContainer 核心用法
410
+
411
+ 子组件通过 `.alignRules()` 定位,必须设置 `.id()`。
412
+
413
+ ```typescript
414
+ RelativeContainer() {
415
+ Text('child1')
416
+ .alignRules({
417
+ top: { anchor: '__container__', align: VerticalAlign.Top },
418
+ left: { anchor: '__container__', align: HorizontalAlign.Start }
419
+ })
420
+ .id('child1')
421
+
422
+ Text('child2')
423
+ .alignRules({
424
+ top: { anchor: 'child1', align: VerticalAlign.Bottom },
425
+ left: { anchor: '__container__', align: HorizontalAlign.Start }
426
+ })
427
+ .id('child2')
428
+ }
429
+ ```
430
+
431
+ - `anchor: '__container__'` 表示以容器为锚点
432
+ - `anchor: 'childId'` 表示以指定 id 的子组件为锚点
433
+ - align 取值:水平方向用 `HorizontalAlign.Start/Center/End`,垂直方向用 `VerticalAlign.Top/Center/Bottom`
434
+ - 可选方向:top, bottom, left, right, middle(水平), center(垂直)
435
+ - bias 偏移:`bias: { horizontal: 0.3, vertical: 0.5 }`(在两个锚点间偏移,0=靠起始锚点,1=靠结束锚点)
436
+ - margin 含义特殊:表示到该方向锚点的距离
437
+
438
+ ---
439
+
440
+ ### SideBarContainer
441
+
442
+ 侧边栏容器。
443
+
444
+ **构造:** `SideBarContainer(type?: SideBarContainerType)`
445
+
446
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
447
+ |------|------|------|--------|------|
448
+ | type | SideBarContainerType | 否 | Embed | 侧边栏类型 |
449
+
450
+ **属性方法:**
451
+
452
+ | 方法 | 签名 | 默认值 | 说明 |
453
+ |------|------|--------|------|
454
+ | .showSideBar | `.showSideBar(value: boolean)` | true | 显示侧边栏 |
455
+ | .controlButton | `.controlButton(value: ButtonStyle)` | — | 控制按钮样式,ButtonStyle:`{ left?: number, top?: number, width?: number, height?: number, icons?: { shown: ResourceStr, hidden: ResourceStr, switching?: ResourceStr } }` |
456
+ | .sideBarWidth | `.sideBarWidth(value: Length)` | 240vp | 侧边栏宽度 |
457
+ | .minSideBarWidth | `.minSideBarWidth(value: Length)` | — | 最小宽度 |
458
+ | .maxSideBarWidth | `.maxSideBarWidth(value: Length)` | 280vp | 最大宽度 |
459
+ | .showControlButton | `.showControlButton(value: boolean)` | true | 显示控制按钮 |
460
+ | .autoHide | `.autoHide(value: boolean)` | true | 自动隐藏 |
461
+ | .sideBarPosition | `.sideBarPosition(value: SideBarPosition)` | Start | 侧边栏位置 |
462
+
463
+ **事件:**
464
+
465
+ | 事件 | 签名 | 说明 |
466
+ |------|------|------|
467
+ | .onChange | `.onChange(event: (value: boolean) => void)` | 侧边栏显隐变化 |
468
+
469
+ ---
470
+
471
+ ### Panel
472
+
473
+ 弹出面板。
474
+
475
+ **构造:** `Panel(show: boolean)`
476
+
477
+ **属性方法:**
478
+
479
+ | 方法 | 签名 | 默认值 | 说明 |
480
+ |------|------|--------|------|
481
+ | .type | `.type(value: PanelType)` | Foldable | 面板类型 |
482
+ | .mode | `.mode(value: PanelMode)` | Mini | 面板模式 |
483
+ | .dragBar | `.dragBar(value: boolean)` | true | 拖拽条 |
484
+ | .fullHeight | `.fullHeight(value: number \| string)` | — | 全屏高度 |
485
+ | .halfHeight | `.halfHeight(value: number \| string)` | — | 半屏高度 |
486
+ | .miniHeight | `.miniHeight(value: number \| string)` | 48vp | 迷你高度 |
487
+ | .show | `.show(value: boolean)` | — | 控制显隐 |
488
+ | .backgroundMask | `.backgroundMask(value: ResourceColor)` | — | 背景遮罩 |
489
+
490
+ **事件:**
491
+
492
+ | 事件 | 签名 | 说明 |
493
+ |------|------|------|
494
+ | .onChange | `.onChange(event: (width, height, mode) => void)` | 面板状态变化 |
495
+ | .onHeightChange | `.onHeightChange(event: (value: number) => void)` | 高度变化 |
496
+
497
+ ---
498
+
499
+ ### Refresh
500
+
501
+ 下拉刷新容器。
502
+
503
+ **构造:** `Refresh(value: RefreshOptions)`
504
+
505
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
506
+ |------|------|------|--------|------|
507
+ | refreshing | boolean | 是 | — | 刷新状态,支持 $$ 绑定 |
508
+ | builder | CustomBuilder | 否 | — | API 10+ 自定义刷新组件 |
509
+ | refreshingContent | ComponentContent | 否 | — | API 12+ 刷新内容 |
510
+
511
+ **属性方法:**
512
+
513
+ | 方法 | 签名 | 默认值 | 说明 |
514
+ |------|------|--------|------|
515
+ | .refreshOffset | `.refreshOffset(value: number)` | 64vp | API 12+ 触发刷新偏移 |
516
+ | .pullToRefresh | `.pullToRefresh(value: boolean)` | true | API 12+ 是否下拉触发 |
517
+ | .pullDownRatio | `.pullDownRatio(value: number)` | — | API 12+ 下拉比率 |
518
+
519
+ **事件:**
520
+
521
+ | 事件 | 签名 | 说明 |
522
+ |------|------|------|
523
+ | .onStateChange | `.onStateChange(event: (state: RefreshStatus) => void)` | 刷新状态变化 |
524
+ | .onRefreshing | `.onRefreshing(event: () => void)` | 刷新触发 |
525
+ | .onOffsetChange | `.onOffsetChange(event: (offset: number) => void)` | 偏移变化 |
526
+
527
+ ---
528
+
529
+ ### Badge
530
+
531
+ 标记组件。
532
+
533
+ > **注意:** ① `style` 是必填参数,必须包含 `{ badgeSize, badgeColor }`。② `count` 和 `value` **二选一**,不能同时传入。数字型用 `count`,文字型用 `value`。
534
+
535
+ **构造 (数字型):** `Badge(value: BadgeParamWithNumber)`
536
+
537
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
538
+ |------|------|------|--------|------|
539
+ | count | number | 是 | — | 计数 |
540
+ | maxCount | number | 否 | 99 | 最大计数 |
541
+ | position | BadgePosition \| Position | 否 | RightTop | 位置 |
542
+ | style | BadgeStyle | 是 | — | 样式 |
543
+
544
+ **构造 (文字型):** `Badge(value: BadgeParamWithString)`
545
+
546
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
547
+ |------|------|------|--------|------|
548
+ | value | ResourceStr | 是 | — | 显示文字 |
549
+ | position | BadgePosition \| Position | 否 | RightTop | 位置 |
550
+ | style | BadgeStyle | 是 | — | 样式 |
551
+
552
+ **BadgeStyle:**
553
+
554
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
555
+ |------|------|------|--------|------|
556
+ | color | ResourceColor | 否 | White | 文字颜色 |
557
+ | fontSize | number \| string | 否 | 10 | 字号 |
558
+ | badgeSize | number \| string | 否 | 16 | 徽标尺寸 |
559
+ | badgeColor | ResourceColor | 否 | #FA2A2D | 徽标颜色 |
560
+ | fontWeight | FontWeight \| number \| string | 否 | FontWeight.Medium | 字重 |
561
+ | borderColor | ResourceColor | 否 | — | 边框颜色 |
562
+ | borderWidth | Length | 否 | 1 | 边框宽度 |
563
+
564
+ ---
565
+
566
+ ### Counter
567
+
568
+ 简单计数器。
569
+
570
+ **构造:** `Counter()`
571
+
572
+ **属性方法:**
573
+
574
+ | 方法 | 签名 | 默认值 | 说明 |
575
+ |------|------|--------|------|
576
+ | .enableInc | `.enableInc(value: boolean)` | true | 允许增加 |
577
+ | .enableDec | `.enableDec(value: boolean)` | true | 允许减少 |
578
+
579
+ **事件:**
580
+
581
+ | 事件 | 签名 | 说明 |
582
+ |------|------|------|
583
+ | .onInc | `.onInc(event: () => void)` | 增加回调 |
584
+ | .onDec | `.onDec(event: () => void)` | 减少回调 |
585
+
586
+ ---
587
+
588
+ ### AlphabetIndexer
589
+
590
+ 字母索引。
591
+
592
+ **构造:** `AlphabetIndexer(options: AlphabetIndexerOptions)`
593
+
594
+ | 参数 | 类型 | 必填 | 默认值 | 说明 |
595
+ |------|------|------|--------|------|
596
+ | arrayValue | Array\<string\> | 是 | — | 索引数组 |
597
+ | selected | number | 是 | — | 选中索引,支持 $$ |
598
+
599
+ **属性方法:**
600
+
601
+ | 方法 | 签名 | 默认值 | 说明 |
602
+ |------|------|--------|------|
603
+ | .color | `.color(value: ResourceColor)` | — | 文字颜色 |
604
+ | .selectedColor | `.selectedColor(value: ResourceColor)` | — | 选中颜色 |
605
+ | .popupColor | `.popupColor(value: ResourceColor)` | — | 弹出颜色 |
606
+ | .usingPopup | `.usingPopup(value: boolean)` | false | 是否使用弹出 |
607
+ | .selectedFont | `.selectedFont(value: Font)` | — | 选中字体 |
608
+ | .popupFont | `.popupFont(value: Font)` | — | 弹出字体 |
609
+ | .font | `.font(value: Font)` | — | 字体 |
610
+ | .itemSize | `.itemSize(value: number \| string)` | 24vp | 索引项尺寸 |
611
+
612
+ **事件:**
613
+
614
+ | 事件 | 签名 | 说明 |
615
+ |------|------|------|
616
+ | .onSelect | `.onSelect(event: (index: number) => void)` | 选中 |
617
+ | .onRequestPopupData | `.onRequestPopupData(event: (index) => Array\<string\>)` | 请求弹出数据 |
618
+
619
+ ---
620
+
621
+ ### 其他容器速查
622
+
623
+ | 组件 | 构造签名 | 核心属性/事件 |
624
+ |------|---------|-------------|
625
+ | **Hyperlink** | `Hyperlink(address: string\|Resource, content?: string\|Resource)` | `.color(ResourceColor)` |
626
+ | **FolderStack** | `FolderStack(options?: {upperItems?: string[]})` | `.alignContent()` `.enableAnimation()` `.autoHalfFold()` `.onFoldStateChange()` |
627
+ | **NodeContainer** | `NodeContainer(controller: NodeController)` | — |
628
+
629
+ ---