【鸿蒙软件开发】ArkUI之Column、ColumnSplit组件

文章目录

  • 前言
  • 一、Column
    • [1.1 子组件](#1.1 子组件)
    • [1.2 接口](#1.2 接口)
    • [1.3 属性](#1.3 属性)
    • [1.4 示例代码](#1.4 示例代码)
  • 二、ColumnSplit
    • [2.1 子组件](#2.1 子组件)
    • [2.2 接口](#2.2 接口)
    • [2.3 属性](#2.3 属性)
    • [2.4 示例代码](#2.4 示例代码)
  • 总结

前言

Column容器组件:沿垂直方向布局的容器。

ColumnSplit组件:将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。


一、Column

沿垂直方向布局的容器。

说明

该组件从API Version 7开始支持。后续版本如有新增内容,则会更新新的文章关于Column。

1.1 子组件

可以包含子组件。

1.2 接口

javascript 复制代码
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 示例代码

javascript 复制代码
// 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 接口

javascript 复制代码
ColumnSplit()

他没有任何参数

2.3 属性

参数名称:resizeable

参数类型:boolean

参数意义:分割线是否可拖拽,默认为false。

说明

与RowSplit相同,ColumnSplit的分割线最小能拖动到刚好包含子组件。

在真机中查看拖动效果,预览器中不支持拖动。

不支持clip、margin通用属性。

2.4 示例代码

javascript 复制代码
// 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组件:将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。

这对于我们的界面布局非常重要!

相关推荐
猫林老师7 分钟前
Flutter for HarmonyOS开发指南(八):国际化与本地化深度实践
flutter·华为·harmonyos
2501_9400940221 分钟前
PS1模拟器 DuckStation更新最新版整合 下载即玩 附PS1Bios/游戏/金手指 安卓版+电脑版
android·游戏·电脑
夏文强1 小时前
HarmonyOS开发-ArkWeb开发指导
华为·harmonyos
南方的狮子先生2 小时前
【C++】C++文件读写
java·开发语言·数据结构·c++·算法·1024程序员节
橙武低代码3 小时前
业务流低代码平台:从理念到实战
android·低代码·ai编程
空白格973 小时前
三方框架必学系列#Retrofit
android
安卓程序猿3 小时前
kotlin build.gradle.kts下修改APK的输出名称
android·kotlin·gradle
wuwu_q3 小时前
通俗易懂 + Android 开发实战的方式,详细讲讲 Kotlin 中的 StateFlow
android·开发语言·kotlin
峰哥的Android进阶之路3 小时前
Kotlin面试题总结
android·开发语言·kotlin
美摄科技3 小时前
android短视频sdk,灵活集成,快速上线!
android·音视频