将子组件纵向布局,并在每个子组件之间插入横向分割线。适用于需要垂直方向上多区域布局且支持动态调整区域大小的场景,如仪表盘界面、可调节高度的上下分区布局等。通过可拖拽的分割线,用户可以灵活调整各区域高度,提升界面交互性和用户体验。
该组件从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
可以包含子组件。
ColumnSplit通过分割线限制子组件的高度。初始化时,分割线位置根据子组件的高度来计算。初始化后,动态修改子组件的高度不生效,分割线位置保持不变。设置resizeable(true)后,可通过拖动相邻分割线改变子组件高度。
初始化后,当动态修改margin、border、padding通用属性导致子组件尺寸大于相邻分割线间距时,不支持拖动分割线改变子组件的高度。
ColumnSplit()
带分割线的子组件纵向布局。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
resizeable(value: boolean)
设置分割线是否可拖拽。设置为true时,用户可拖动分割线调整相邻子组件高度;设置为false时,分割线不可拖动,子组件高度固定。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| value | boolean | 是 | 分割线是否可拖动。设置为true时表示分割线可拖动,设置为false时表示分割线不可拖动。子组件的高度调整范围受其最大最小高度限制;当子组件尺寸大于相邻分割线间距时,不支持拖动分割线。初始化后,当动态修改margin、border、padding通用属性导致子组件尺寸大于相邻分割线间距时,不支持拖动分割线改变子组件的高度。 默认值:false 非法值:按默认值处理。 |
divider(value: ColumnSplitDividerStyle | null)
设置分割线与子组件之间的距离。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| value | ColumnSplitDividerStyle | null | 是 | 分割线的margin,即设置分割线与子组件的距离。对象属性包括:startMargin(子组件与上方分割线的距离)和endMargin(子组件与下方分割线的距离)。 默认值:null。当设置为null时,分割线与子组件的距离为0vp。 非法值:按默认值处理。 |
设置子组件与上下分割线的距离。
元服务API: 从API version 11开始,该接口支持在元服务中使用。
模型约束: 此接口仅可在Stage模型下使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
| 名称 | 类型 | 只读 | 可选 | 说明 |
|---|---|---|---|---|
| startMargin | Dimension | 否 | 是 | 子组件与其上方分割线的距离。可调整间距(如避免内容与分割线重叠、美化布局等场景)。 默认值:0vp 取值范围:不支持负值。 非法值:按默认值处理,此时getInspectorByKey()接口获取到的属性值为undefined。 |
| endMargin | Dimension | 否 | 是 | 子组件与其下方分割线的距离。可调整间距(如避免内容与分割线重叠、美化布局等场景)。 默认值:0vp 取值范围:不支持负值。 非法值:按默认值处理,此时getInspectorByKey()接口获取到的属性值为undefined。 |
本示例展示如何设置可拖动的ColumnSplit组件及其效果。
// xxx.ets
@Entry
@Component
struct ColumnSplitExample {
build() {
Column() {
Text('The dividing line can be dragged').fontSize(9).fontColor(0xCCCCCC).width('90%')
ColumnSplit() {
Text('1').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
Text('2').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
Text('3').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
Text('4').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
Text('5').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
}
.borderWidth(1)
.resizeable(true) // 设置分割线可拖拽
.width('90%').height('60%')
}.width('100%')
}
} 
本示例展示如何设置带有间隔的ColumnSplit组件及其效果。
// xxx.ets
@Entry
@Component
struct ColumnSplitDividerExample {
build() {
Column() {
Text('The dividing line can be dragged').fontSize(9).fontColor(0xCCCCCC).width('90%')
ColumnSplit() {
Text('1').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
Text('2').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
Text('3').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
Text('4').width('100%').height(50).backgroundColor(0xD2B48C).textAlign(TextAlign.Center)
Text('5').width('100%').height(50).backgroundColor(0xF5DEB3).textAlign(TextAlign.Center)
}
.borderWidth(1)
.divider({ startMargin: 5, endMargin: 5 }) // 设置分割线与子组件的距离
.width('90%')
.height('60%')
}.width('100%')
}
} 