网站首页 > 教程分享 正文
线性布局方式LinearLayout是在开发中一种比较常用的布局方式,是指通过横向或者是纵向的方式来对页面进行布局的方式,在HarmonyOS UI中提供了Row和Clumn两种线性容器来支持线性布局方式。下面我们就来详细介绍一下两种布局方式。
Row容器
线性布局容器在布局方向上的轴线,子元素默认沿主轴排列。Row容器主轴为水平方向,而Row容器的交叉轴位于垂直方向上。
Row容器内排列方向上的间距
在Row容器中的子元素是按照水平方向排列,如下图所示。
从上面图中我们可以看到,Row容器中的元素是横向进行布局的,而在横向布局的时候,我们可以通过space属性来调整元素的间距如下所示。
@Entry
@Component
struct Index {
@State message: string = 'Harmony OS';
build() {
Row({space:35}) {
Column() {
Text(this.message)
.fontSize(20)
.fontWeight(FontWeight.Bold)
}
.width('30%')
.backgroundColor('#ffcccc')
Column() {
Text(this.message)
.fontSize(20)
.fontWeight(FontWeight.Bold)
}
.width('30%')
.backgroundColor('#ffcccc')
Column() {
Text(this.message)
.fontSize(20)
.fontWeight(FontWeight.Bold)
}
.width('30%')
.backgroundColor('#ffcccc')
}
.width('90%')
}
}
在模拟器中运行的效果如下所示
Row容器内子元素在垂直方向上的排列
如下图所示,我们可以在代码中通过.alignItems(VerticalAlign.Top)属性配置来设置在水平方向上的布局位置。
该属性有三个值分别如下所示
- VerticalAlign.Top:子元素在垂直方向顶部对齐。
- VerticalAlign.Center:子元素在垂直方向居中对齐。
- VerticalAlign.Bottom:子元素在垂直方向底部对齐。
代码操作如下所示。
@Entry
@Component
struct Index {
@State message: string = 'Harmony OS';
build() {
Row({space:20}) {
Column() {
Text(this.message)
.fontWeight(FontWeight.Bold)
}
.backgroundColor('#ffcccc')
Column() {
Text(this.message)
.fontWeight(FontWeight.Bold)
}
.backgroundColor('#ffcccc')
Column() {
Text(this.message)
.fontWeight(FontWeight.Bold)
}
.backgroundColor('#ffcccc')
}
.width('100%')
.height('100%')
.alignItems(VerticalAlign.Top)
.backgroundColor(0xD2B48C)
}
}
Row容器内子元素在水平方向上的排列
聊完在竖直方向上的排列之后,我们下面来看看在水平方向上的排列,如下图所示
我们可以通过.justifyContent(FlexAlign.Start)配置属性来设置相关的属性配置,该配置属性值有如下一些
- justifyContent(FlexAlign.Start):这种布局方式是指,将元素在水平方向上从左往右开始逐次排列。
- justifyContent(FlexAlign.Center):这种布局方式是将元素从中心位置开始对其排列,也就是说第一个元素与行首的距离与最后一个元素与行尾距离相同。
- justifyContent(FlexAlign.End):这种方式与Start的方式作用相反,元素在水平方向尾部对齐,最后一个元素与行尾对齐,其他元素与后一个对齐。
- justifyContent(FlexAlign.SpaceBetween):水平方向均匀分配元素,相邻元素之间距离相同。第一个元素与行首对齐,最后一个元素与行尾对齐,如下图所示。
- justifyContent(FlexAlign.SpaceAround):这种布局方式是指将元素在水平方向上进行均匀分配,并且两个相邻元素之间距离相同。并且第一个元素到行首的距离和最后一个元素到行尾的距离是相邻元素之间距离的一半,如下图所示。
- justifyContent(FlexAlign.SpaceEvenly):这种布局方式是指将元素在水平方向均匀分配,并且两个相邻元素之间的距离、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样的,如下图所示。
需要注意最后两种方式在实现上有些相似,但是需要注意二者在分布距离上的不同。
总结
上面我们介绍了关于Row容器的相关布局以及使用方式,其他的例如布局宽高、布局背景色、外边距、内边距则是一些标准属性,有兴趣的读者可以自己进行测试。
猜你喜欢
- 2025-04-08 优秀的 PPT 模板中,各种排版的精准对齐是怎么做到的?又快又准
- 2025-04-08 办公小技巧:Word快速排版联合公文文件头
- 2025-04-08 Word如何排版(word 排版小技巧)
- 2025-04-08 直角转弯记住这5点(直角转弯百度经验)
- 2025-04-08 教程日为什么别人拍摄的微距照片那么好?
- 2025-04-08 5、谈谈你对BFC的理解?(bfc的概念及使用场景)
- 2025-04-08 Excel表格的表头合并技巧 对齐格式设置 零基础学习 常用表格技巧
- 2025-04-08 Diffusion-DPO:一种基于直接偏好优化的扩散模型对齐新方法
- 2025-04-08 Word中如何快速对齐ABCD选项?(文档怎么把abc对齐)
- 2025-04-08 HarmonyOS NEXT - 页面路由(路由器web界面)
你 发表评论:
欢迎- 最近发表
-
- 有了这份900多页的Android面试指南,你离大厂Offer还远吗?
- K2 Blackpearl 流程平台总体功能介绍:常规流程功能
- 零基础安卓开发起步(一)(安卓开发入门视频)
- 教程:让你的安卓像Windows一样实现程序窗口化运行
- Android事件总线还能怎么玩?(事件总线有什么好处)
- Android 面试被问“谈谈架构”,到底要怎样回答才好?
- Android开发工具Parcel和Serialize
- Android 中Notification的运用(notification widget安卓)
- Android退出所有Activity最优雅的方式
- MT管理器-简单实战-去除启动页(mt管理器怎么去除软件弹窗)
- 标签列表
-
- css导航条 (66)
- sqlinsert (63)
- js提交表单 (60)
- param (62)
- parentelement (65)
- jquery分享 (62)
- check约束 (64)
- curl_init (68)
- sql if语句 (69)
- import (66)
- chmod文件夹 (71)
- clearinterval (71)
- pythonrange (62)
- 数组长度 (61)
- javafx (59)
- 全局消息钩子 (64)
- sort排序 (62)
- jdbc (69)
- php网页源码 (59)
- assert h (69)
- httpclientjar (60)
- postgresql conf (59)
- winform开发 (59)
- mysql数字类型 (71)
- drawimage (61)
本文暂时没有评论,来添加一个吧(●'◡'●)