文章目录
- 前言
- 一、Column
- 1.1 子组件
- 1.2 接口
- 参数
- 1.3 属性
- 1.4 示例代码
- 二、ColumnSplit
- 2.1 子组件
- 2.2 接口
- 2.3 属性
- 2.4 示例代码
- 总结
前言
Column容器组件:沿垂直方向布局的容器。
ColumnSplit组件:将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。
一、Column
沿垂直方向布局的容器。
说明
该组件从API Version 7开始支持。后续版本如有新增内容,则会更新新的文章关于Column。
1.1 子组件
可以包含子组件。
1.2 接口
Column(value?: {space?: string | number})
从API version 9开始,该接口支持在ArkTS卡片中使用。
参数
参数名称:space,参数类型string | number
是否必填:否
功能描述:纵向布局元素垂直方向间距。
从API version 9开始,space为负数或者justifyContent设置为FlexAlign.SpaceBetween、FlexAlign.SpaceAround、FlexAlign.SpaceEvenly时不生效。
默认值:0
说明:
可选值为大于等于0的数字,或者可以转换为数字的字符串。
1.3 属性
除支持通用属性外,还支持以下属性:
alignItems
参数类型: HorizontalAlign
描述: 用于设置子组件在水平方向上的对齐方式。默认情况下,子组件会在水平居中对齐。从API版本9开始,这个参数支持在ArkTS卡片中使用。
justifyContent
参数类型: FlexAlign
描述: 用于设置子组件在垂直方向上的对齐方式。默认情况下,子组件会在垂直方向上从顶部对齐。从API版本9开始,这个参数支持在ArkTS卡片中使用。
这些参数用于布局控制,让你可以指定子组件在容器中的对齐方式,以便更好地控制界面布局。
1.4 示例代码
// xxx.ets
@Entry
@Component
struct ColumnExample {
build() {
Column({ space: 5 }) {
// 设置子元素垂直方向间距为5
Text('space').width('90%')
Column({ space: 5 }) {
Column().width('100%').height(30).backgroundColor(0xAFEEEE)
Column().width('100%').height(30).backgroundColor(0x00FFFF)
}.width('90%').height(100).border({ width: 1 })
// 设置子元素水平方向对齐方式
Text('alignItems(Start)').width('90%')
Column() {
Column().width('50%').height(30).backgroundColor(0xAFEEEE)
Column().width('50%').height(30).backgroundColor(0x00FFFF)
}.alignItems(HorizontalAlign.Start).width('90%').border({ width: 1 })
Text('alignItems(End)').width('90%')
Column() {
Column().width('50%').height(30).backgroundColor(0xAFEEEE)
Column().width('50%').height(30).backgroundColor(0x00FFFF)
}.alignItems(HorizontalAlign.End).width('90%').border({ width: 1 })
Text('alignItems(Center)').width('90%')
Column() {
Column().width('50%').height(30).backgroundColor(0xAFEEEE)
Column().width('50%').height(30).backgroundColor(0x00FFFF)
}.alignItems(HorizontalAlign.Center).width('90%').border({ width: 1 })
// 设置子元素垂直方向的对齐方式
Text('justifyContent(Center)').width('90%')
Column() {
Column().width('90%').height(30).backgroundColor(0xAFEEEE)
Column().width('90%').height(30).backgroundColor(0x00FFFF)
}.height(100).border({ width: 1 }).justifyContent(FlexAlign.Center)
Text('justifyContent(End)').width('90%')
Column() {
Column().width('90%').height(30).backgroundColor(0xAFEEEE)
Column().width('90%').height(30).backgroundColor(0x00FFFF)
}.height(100).border({ width: 1 }).justifyContent(FlexAlign.End)
}.width('100%').padding({ top: 5 })
}
}
二、ColumnSplit
将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。
说明
该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
2.1 子组件
可以包含子组件。
2.2 接口
ColumnSplit()
他没有任何参数
2.3 属性
参数名称:resizeable
参数类型:boolean
参数意义:分割线是否可拖拽,默认为false。
说明
与RowSplit相同,ColumnSplit的分割线最小能拖动到刚好包含子组件。
在真机中查看拖动效果,预览器中不支持拖动。
不支持clip、margin通用属性。
2.4 示例代码
// xxx.ets
@Entry
@Component
struct ColumnSplitExample {
build() {
Column(){
Text('The secant 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%')
}
}
总结
Column容器组件:沿垂直方向布局的容器。
ColumnSplit组件:将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。
这对于我们的界面布局非常重要!