首页 > 其他分享 >HarmonyOS鸿蒙应用开发之Row & Colum组件的使用

HarmonyOS鸿蒙应用开发之Row & Colum组件的使用

时间:2024-08-06 22:26:33浏览次数:10  
标签:Colum alignItems Column HarmonyOS 组件 对齐 Row 属性

文章目录


在HarmonyOS(鸿蒙系统)中, RowColumn 组件是ArkTS(Ark TypeScript)语言用于构建用户界面的基础布局容器。它们分别用于实现水平方向( Row)和垂直方向( Column)的布局。以下是这两个组件的一些主要属性及用法介绍:

Row 组件

基本用法

Row 组件允许你将子组件水平排列。你可以通过调整不同的属性来控制子组件的布局方式。

主要属性

  1. space:设置子组件之间的间距。可以是一个数值(表示固定的间距)或字符串(在某些情况下表示基于屏幕密度的间距)。
  2. justifyContent:控制子组件在主轴(水平方向)上的对齐方式。常用的值包括FlexAlign.Start(首端对齐)、FlexAlign.Center(居中对齐)、FlexAlign.End(尾端对齐)、FlexAlign.SpaceBetween(两端对齐,元素之间等间距)、FlexAlign.SpaceAround(元素周围等间距)、FlexAlign.SpaceEvenly(元素之间及两端等间距)。
  3. alignItems:控制子组件在交叉轴(垂直方向)上的对齐方式。由于Row的主轴是水平方向,交叉轴是垂直方向,因此此属性主要用于控制子组件的垂直对齐方式。不过,对于Row组件,通常更关注水平方向的对齐,因此alignItems的使用相对较少。
  4. crossAxisAlignment:与alignItems类似,但在某些布局框架中可能以不同名称出现,用于控制子组件在交叉轴上的对齐方式。

示例代码

@Entry
@Component
struct RowExample {
  build() {
    Row({ space: 20, justifyContent: FlexAlign.SpaceBetween }) {
      Text('Item 1').fontSize(16)
      Text('Item 2').fontSize(16)
      Text('Item 3').fontSize(16)
    }
  }
}

Column 组件

基本用法

Column 组件允许你将子组件垂直排列。与Row类似,你可以通过调整不同的属性来控制子组件的布局方式。

主要属性

  1. space:设置子组件之间的间距。
  2. justifyContent:控制子组件在主轴(垂直方向)上的对齐方式。与Row组件相同,但在这里它控制的是垂直方向的对齐。
  3. alignItems:对于Column组件,它控制子组件在交叉轴(水平方向)上的对齐方式。常用的值包括HorizontalAlign.Start(左对齐)、HorizontalAlign.Center(居中对齐)、HorizontalAlign.End(右对齐)。
  4. crossAxisAlignment:同样用于控制子组件在交叉轴上的对齐方式,但可能因布局框架而异。

示例代码

@Entry
@Component
struct ColumnExample {
  build() {
    Column({ space: 10, justifyContent: FlexAlign.Center, alignItems: HorizontalAlign.Center }) {
      Text('Item 1').fontSize(16)
      Text('Item 2').fontSize(16)
      Text('Item 3').fontSize(16)
    }
  }
}
注意事项
  • justifyContentalignItems(或crossAxisAlignment)是两个非常重要的属性,它们分别控制子组件在主轴和交叉轴上的对齐方式。
  • space 属性用于设置子组件之间的间距,使得布局更加美观和易于阅读。
  • 在实际应用中,你可能需要根据具体需求调整这些属性的值,以达到理想的布局效果。

其他属性

在HarmonyOS的ArkTS语言中,RowColumn组件除了上述提到的spacejustifyContentalignItems(或crossAxisAlignment)等常用属性外,还有一些其他属性和用法,这些属性和用法可以进一步丰富和细化布局效果。以下是一些额外的属性和用法介绍:

Row 和 Column 组件的通用属性
  1. widthheight

    • 这两个属性分别用于设置组件的宽度和高度。它们可以是具体的数值(如像素值),也可以是百分比(相对于父容器的宽度或高度)。
  2. paddingmargin

    • padding属性用于设置组件内部子元素与组件边界之间的空间。
    • margin属性用于设置组件外部与其他元素之间的空间。
    • 这两个属性可以是单一的数值,也可以是包含上、右、下、左四个方向的数组或对象。
  3. backgroundColor

    • 用于设置组件的背景颜色。可以是一个颜色代码(如十六进制颜色码)或颜色对象。
  4. border

    • 用于设置组件的边框样式,包括边框的宽度、颜色等。在某些情况下,可能需要通过decoration属性来设置更复杂的边框样式。
Row 组件特有的属性和用法
  1. mainAxisSize

    • 控制主轴(水平方向)的尺寸。MainAxisSize.min表示主轴尺寸由子组件尺寸决定,MainAxisSize.max表示主轴尺寸扩展到容器尺寸。
  2. mainAxisAlignmentcrossAxisAlignment

    • 这两个属性分别用于控制子组件在主轴和交叉轴上的对齐方式。虽然Row组件的主要关注点是水平方向的对齐,但crossAxisAlignment属性仍然可以用于控制子组件在垂直方向上的对齐方式。
Column 组件特有的属性和用法

对于Column组件,其属性和用法与Row组件类似,但主轴方向是垂直的,因此一些属性的效果会有所不同。例如,mainAxisSizemainAxisAlignmentcrossAxisAlignmentColumn组件中将影响子组件在垂直和水平方向上的布局。

示例代码

以下是一个结合了多个属性的RowColumn组件示例:

@Entry
@Component
struct LayoutExample {
  build() {
    Column({ space: 10, justifyContent: FlexAlign.Center, alignItems: HorizontalAlign.Center, width: '100%', height: '100%' }) {
      Row({ space: 20, mainAxisAlignment: MainAxisAlignment.SpaceEvenly, crossAxisAlignment: CrossAxisAlignment.Center }) {
        Text('Item 1').fontSize(16).padding({ all: 5 }).backgroundColor(Color.LightGray)
        Text('Item 2').fontSize(16).padding({ all: 5 }).backgroundColor(Color.LightBlue)
        Text('Item 3').fontSize(16).padding({ all: 5 }).backgroundColor(Color.LightGreen)
      }
      .width('80%')
      .height(100)
      .backgroundColor(Color.White)
      .border({ width: 1, color: Color.Black })

      // 可以继续添加其他Row或Column组件
    }
  }
}

请注意,上述示例中的CrossAxisAlignment.CenterRow组件中实际上并不是必需的,因为Row的交叉轴是垂直方向,而alignItems属性(在ArkTS中可能以不同名称出现,如crossAxisAlignment或直接在Row组件上作为alignItems)已经用于控制水平方向上的对齐方式。然而,为了展示属性的通用性,我仍然将其包含在内。在实际应用中,应根据具体需求选择合适的属性和值。

以上信息基于HarmonyOS的ArkTS语言以及相关的布局组件文档。需要注意的是,随着HarmonyOS的不断更新和发展,某些属性或用法可能会发生变化。因此,建议在实际开发过程中参考最新的官方文档或资源。

标签:Colum,alignItems,Column,HarmonyOS,组件,对齐,Row,属性
From: https://blog.csdn.net/Lwjobs/article/details/140936420

相关文章

  • WPF DataGrid Checkbox column to implement select and unselect items explicitly v
    <DataGridTemplateColumnHeader="Select"><DataGridTemplateColumn.CellTemplate><DataTemplate><CheckBoxIsThreeState="False"><behavior:Interaction.Triggers>......
  • 跳转语句(return,break,continue,goto,throw)
    跳转语句Java中的跳转语句允许你控制程序的流程,主要有以下几种:return:从方法返回一个值,并退出当前方法。break:跳出当前的循环(for、while或do-while)。continue:跳过当前循环的剩余部分,开始下一次循环迭代。goto:跳转到程序中的指定标签位置(Java7引入的有限形式)。throw:抛出......
  • Android开发 - ListRow类解析
    ListRow是什么ListRow是AndroidTV开发中的一个类,用于在应用的用户界面中显示水平滚动的项(如卡片、图像等)列表。它通常在一个BrowseFragment或RowsFragment中使用,以组织和显示内容//创建一个BrowseFragment实例BrowseFragmentbrowseFragment=newBrowseFragment......
  • HarmonyOS开发商城商品详情页
    目录一:功能概述二:代码实现三:效果图一:功能概述这一节,我们实现商品详情页的开发,具体流程就是在首页的商品列表点击商品跳转到商品详情页面,同时传递参数到该页面,通过参数调用商品详情接口在详情页展示商品的的详情信息。这里我们为了方便返回首页,在最顶部加入返回和回到首......
  • Android开发 - BrowseFragment 类解析
    BrowseFragment是什么例如电视应用屏幕上有很多行,每行显示一组视频,比如“热门电影”、“新剧集”、“推荐给你”等。每行可以左右滚动,显示不同的视频缩略图。BrowseFragment就是用来创建这种界面的主要功能每行有一个标题:告诉你这行内容是什么,比如“热门电影”每行可以滚......
  • rows和range的区别--窗口函数
    目录1.rows和range关键字的区别2.例题:2.1 求最近三个月(前两个月和当前月)的累计销量2.2 计算最近3个月(前两个月和当前月)的累计销量1.rows和range关键字的区别rows和range关键字,都可以用来定义windowframe范围:rowsbetween上限and下线rangebetween上限and......
  • PgStatement的executeCachedSql(String sql, int flags, String @Nullable [] column
    方法代码如下:privatebooleanexecuteCachedSql(Stringsql,intflags,String@Nullable[]columnNames)throwsSQLException{//第一部分PreferQueryModepreferQueryMode=connection.getPreferQueryMode();booleanshouldUseParameterized=false;......
  • HarmonyOS:如何实现自定义的Tabs,TabContent内部实现如何动态配置
    前言:最近做开发任务的时候,想把Tabs自定义了,并且动态配置TabContent里面的内容,不是写死一样的,这个问题困扰了很长时间,试过**@BuilderParam**(类似于vue的插槽)传组件方式的,但是**@BuilderParam只能传一个,我想要传递的是一个数组,找了很多Api最后找到了WrappedBuilder[]**这种方......
  • HarmonyOS — Stage模型、模块和UIAbility组件
    每一个UIAbility实例,都对应与一个最近的任务列表中的任务。UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互一个应用可以一个模块或多个模块,一个模块中可以有一个UIAbility也可以有多个UIAbility单个UIAbility:任务列表只有一个任务多个UIAbility:任务列表......
  • [Oracle]面试官:你说说rownum、currval与nextval分别是什么,还有没有其他的?
    【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)https://www.cnblogs.com/cnb-yuchen/p/18338280出自【进步*于辰的博客】目录1、rownum1.1介绍1.2示例2、nextval、currval2.1序列2.2介绍2.3示例最后1、rownum参考笔记一,P18.3/4、P19.5。1.1介绍rownu......