1. 涉及到的技术点
- 局线性布局 (Row/Column)的使用
2.基本概念
- 布局容器:具有布局能力的容器组件,可以承载其他元素作为其子元素,布局容器会对其子元素进行尺寸计算和布局排列。
- 布局子元素:布局容器内部的元素。
- 主轴:线性布局容器在布局方向上的轴线,子元素默认沿主轴排列。Row容器主轴为水平方向,Column容器主轴为垂直方向。
- 交叉轴:垂直于主轴方向的轴线。Row容器交叉轴为垂直方向,Column容器交叉轴为水平方向。
3. 布局子元素在排列方向上的间距
在布局容器内,可以通过space属性设置排列方向上子元素的间距,使各子元素在排列方向上有等间距效果。
4.官方使用指南
官方地址:线性布局 (Row/Column)
5. demo实现登录页面
@Entry
@Component
struct Index {
build() {
Column() {
Text('登录')
.fontWeight(700)
.fontSize(28)
.lineHeight(46)
.width('100%')
Image($r('app.media.img_logo'))
.width(89)
.borderRadius(50)
.margin({ top: 100 })
Text('用户名')
.width('100%')
.margin({ top: 50, left: 20 })
.fontSize(14)
TextInput({ placeholder: '请输入用户名' })
.margin({ top: 10 })
.borderRadius(4)
Text('密码')
.width('100%')
.margin({ top: 20, left: 20 })
.fontSize(14)
TextInput({ placeholder: '请输入密码' })
.type(InputType.Password)
.margin({ top: 10 })
.borderRadius(4)
Row() {
Toggle({ type: ToggleType.Checkbox })
Text('记住密码')
}
.width('100%')
.margin({ top: 10 })
Button('登录', { type: ButtonType.Normal })
.width('100%')
.backgroundColor('#e22418')
.borderRadius(4)
.margin({ top: 30 })
Row() {
Text('还没有账号? ').fontColor('#999')
Text(' 点击注册').fontColor('#e22418')
}
.margin({ top: 30 })
}
//设置父布局左右的间距
.padding({
left: 26,
right: 26
})
.width('100%')
.height('100%')
}
}
6. 运行效果
7. 其它控件官方学习指南
- 按钮 (Button):https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-components-button-V5
- 切换按钮 (Toggle):https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-components-switch-V5
- 文本输入 (TextInput/TextArea):https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-components-text-input-V5
- 文本显示 (Text/Span):https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-common-components-text-display-V5
- 显示图片 (Image):https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-graphics-display-V5