首页 > 编程笔记 > 通用技能 阅读:2

鸿蒙Column和Row容器的用法(附带实例)

Column 是沿垂直方向布局的容器。Row 是沿水平方向布局的容器。Column 和 Row 是常用的容器组件,它们有很多共同参数,但是相同的参数在不同容器中的展示是有所区别的。

Column 和 Row 的构造函数都有 space 参数,用来表示元素的间距。

Column 和 Row 都包含属性 alignItems 和 justifyContent,用来设置子组件的对齐格式。它们的区别是:
Column 的示例代码如下:
Row(){
    Text('Column的使用').fontSize(20).fontWeight(800).width(1000).height(30)
}
Column({ space: 5 }) {
    // 设置子元素垂直方向间距为5
    Text('设置子元素垂直方向间距为5: 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 })
    }
}
Column 的效果如下图所示:


图 1 Column 的效果

Row 的示例代码如下:
Row(){
    Text('Row的使用').fontSize(20).fontWeight(800).width('100%').height(30)
}
Column({ space: 5 }) {
    // 设置子组件水平方向的间距为5
    Text('设置子组件水平方向的间距为5: space').width('90%')
    Row({ space: 5 }) {
        Row().width('30%').height(50).backgroundColor(0xAFEEEE)
        Row().width('30%').height(50).backgroundColor(0x00FFFF)
        .width('90%').height(100).border({ width: 1 })
    }
    // 设置子元素垂直方向对齐方式
    Text('设置子元素垂直方向对齐方式:alignItems(Bottom)').width('90%')
    Row() {
        Row().width('30%').height(50).backgroundColor(0xAFEEEE)
        Row().width('30%').height(50).backgroundColor(0x00FFFF)
        .width('90%').alignItems(VerticalAlign.Bottom).height('15%').border({ width: 1 })
    }
    Text('设置子元素垂直方向对齐方式:alignItems(Center)').width('90%')
    Row() {
        Row().width('30%').height(50).backgroundColor(0xAFEEEE)
        Row().width('30%').height(50).backgroundColor(0x00FFFF)
        .width('90%').alignItems(VerticalAlign.Center).height('15%').border({ width: 1 })
    }
    // 设置子元素水平方向对齐方式
    Text('设置子元素水平方向对齐方式:justifyContent(End)').width('90%')
    Row() {
        Row().width('30%').height(50).backgroundColor(0xAFEEEE)
        Row().width('30%').height(50).backgroundColor(0x00FFFF)
        .width('90%').border({ width: 1 }).justifyContent(FlexAlign.End)
    }
    Text('设置子元素水平方向对齐方式:justifyContent(Center)').width('90%')
    Row() {
        Row().width('30%').height(50).backgroundColor(0xAFEEEE)
        Row().width('30%').height(50).backgroundColor(0x00FFFF)
        .width('90%').border({ width: 1 }).justifyContent(FlexAlign.Center)
    }.width('100%')
}
Row 的效果如下图所示:


图 2 Row的效果

相关文章