【鸿蒙软件开发】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组件:将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。

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

相关推荐
编程乐学23 分钟前
安卓非原创--基于Android Studio 实现的新闻App
android·ide·android studio·移动端开发·安卓大作业·新闻app
雅雅姐1 小时前
Android14 init.rc中on boot阶段操作4
android
fatiaozhang95272 小时前
中国移动中兴云电脑W132D-RK3528-2+32G-刷机固件包(非原机制作)
android·xml·电脑·电视盒子·刷机固件·机顶盒刷机
森之鸟2 小时前
开发中使用——鸿蒙播放本地mp3文件
华为·harmonyos
不是三毛没有半2 小时前
华为USG6000v2 NAT模式下IPSEC IKE V1 实验
网络·网络安全·华为
Android出海4 小时前
Google Play账户与App突遭封禁?紧急应对与快速重构上架策略
android·网络·重构·新媒体运营·产品运营·内容运营
恋猫de小郭4 小时前
Flutter 官方 LLM 动态 UI 库 flutter_genui 发布,让 App UI 自己生成 UI
android·前端·flutter
锅拌饭5 小时前
saveEnabled导致的Fragment大量泄露
android
叽哥5 小时前
Kotlin学习第 3 课:Kotlin 流程控制:掌握逻辑分支与循环的艺术
android·java·kotlin
CYRUS_STUDIO5 小时前
别让 so 裸奔!移植 OLLVM 到 NDK 并集成到 Android Studio
android·android studio·llvm