对齐方式
-
主轴对齐
Row(){ } .justifyContent( FlexAlign.Start )属性 描述 Start 首端对齐 Center 居中对齐 End 尾部对齐 Spacebetween 两端对齐 SpaceAround 子元素两侧间距相等 SpaceEvenly 相邻元素之间的距离,第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样 -
交叉轴对齐
// 水平容器 和 垂直容器 所用的枚举值不同 Row(){} .alignItem( VerticalAlign.Start ) Column(){} .alignTem( HorizontalAlign.Start )-
水平 .VeriticalAlign ( )
属性 描述 Top 顶端对齐 Center 中间对齐 Bottom 底部对齐 -
垂直.HorizontalAlign ( )
属性 描述 Start 左对齐 Center 居中对齐 End 右对齐
-
布局属性
内、外边距
Row(){}
// 内边距
.padding({
top: 10,
bottom: 10,
left: 10,
right: 10
})
// 外边距
.margin()({
top: 10,
bottom: 10,
left: 10,
right: 10
})
在单独设置一个值时将同时设置四个方向的值
边框
Row()
.border({
具体的样式属性
})
| 属性 | 描述 |
|---|---|
| width ( {left: number, right: number, ...} ) | 设置边框的粗细。设置一个值表示所有框线的粗细 |
| color ( {left: Color, right: Color, ...} ) | 设置边框的颜色。设置一个值表示所有框线的颜色 |
| style ( BorderStyle.Solid ) | 设置边框线的样式。 Solid 实线、Dashed 虚线、Dotted 点线 |
边框圆角
// 设置一个值为所有
.borderRadius ({
topleft: number,
topright: number,
bottomleft: number,
bottomright: number
})
背景属性
背景图片
// ImgResouce: 图片文件的路径
// ImageRepeat: 图片的平铺方式。 X 水平复制铺满、Y 垂直复制铺满、XY 水平和垂直同时复制铺满
.backgroundImage( ImgResouce, ImageRepeat.X )
背景图片尺寸
// 1. 对象方式 { width: number, height: number }
// 2. 枚举对象方式 Image.Cover 等比缩放背景图片完全覆盖组件范围
Image.Contain 等比缩放
Image.Auto 默认原图尺寸
.backgroundImageSize()
调整背景图片在组件内的显示位置
1. 位置坐标: { x: number, y: number}
2. 枚举对象: ALignment
.backgroundImagePosition()
定位
绝对定位
// 参考父组件的左上角计算位置,不保留原本的位置
// 单位 vp
.position( {x: number, y: number} )
绝对定位
// 相对自身组件左上角位置计算位置,保留原本位置
.offset ( {x: number, y: number} )
Z 序控制 (显示优先级)
.ZIndex ( number )
颜色渐变
一、线性渐变
.LinearGradient ({
具体参数
})
| 属性 | 描述 |
|---|---|
| angle ( number ) | 设置颜色变化的方向 |
| direction ( GeadientDirection.Right ) | 设置颜色变化的方向。设置后 angle 将无法生效 |
| colors ( [[Color1, number1], [Color2, number2]] ) | 设置颜色变化的列表 |
| repeating ( boolean ) | 是否开启重复着色。开启后在颜色n结束位置 从颜色 1重新渐变到 颜色n |
二、径向渐变
radialGradient(){
center: 径向渐变的中心坐标 number[2] => [ x, y ],
radius: 径向颜色的半径 number
colors: 颜色数组
repeating: 是否着色
}
阴影
.Shadow()
| 属性 | 描述 |
|---|---|
| redius: (number | 设置阴影的半径。 |
| type: (shadowType.Color | 设置阴影的类型。Color 颜色、CLUB ?? |
| color: Color | 阴影的颜色 |
| offsetX offsetY: number | 设置阴影的偏移量 |
| fill: false | 设置为 true 时将阴影填充在组件内 |
多状态样式
.StateStyle({
pressed: {
具体的样式
}
})
| 状态值 | 描述 |
|---|---|
| normal | 默认状态 |
| pressed | 按压状态 |
| disabled | 禁用状态 |
| focused | 获取焦点时的状态 |
| cilcked | 点击时的样式 |
动画
在通用属性发生变化时,可以通过属性动画实现渐变过渡效果
.animation({})
| 属性 | 描述 |
|---|---|
| duration: number | 设置动画的时长。单位 毫秒 |
| curve: Curve.EaseInOut | 设置动画曲线 |
| delay: number | 设置动画执行延迟的时间。 |
| iterations: number | 设置动画播放的次数。 -1 无穷、0 无效果、 |
图形变换
一,平移( translate() )

.translate({x:1, y:1, z:1})
-
x : 正数向右平移的距离
-
y:正数向左平移的距离
-
z:视为 scale() 方法将 xy 设置为相同缩放距离的效果
二,缩放 ( scale() )
.scale({x: 1, y: 1, z: 1, X: 0, Y: 0})
-
x: 将组件的高设置为 height*x
-
y: 将组件的宽设置为 Weight*y
-
z: ???????
-
X,Y : 设置缩放轴中心点坐标 ????
三, 旋转 ( rotate() )
.rotate({angle: 60, X: 0, Y: 0})
- angle: 旋转的角度
- X,Y: ???????
样式 && 结构复用
@Extend ( )
拓展指定组件的样式、事件。需定义在 全局。 可传递参数
注意: 仅可给指定的组件使用
// Extend 参数给要扩展的组件名
// 函数参数给需要传入的参数
@Extend(Text) function extendText(size: number){
.fontSize(size)
.onclick(() => {
...
})
}
.....
// 可直接当成属性使用
Text('我是一个文本')
.extendText(12)
@Styles
不同于 Extend,Styles 仅可定义通用属性和通用事件 且可以给任意组件使用。 不可传递参数
注意: Styles 的定义分为 全局定义 和在 组件内定义 ( 需写在 struct 中 )。
组件内定义的作用域仅在该组件内, 但是可以使用 状态变量 设置属性
// 全局定义
@Styles function Mystyle(){
.width('100%')
.height('100%')
}
// 组件内部定义
@Component
struct Index{
buider(){
Column(){
}
.Mystyle()
.MyStyleName()
}
@Styles MyStyleName(){
.width('100%')
.height('100%')
}
}
@Builder
不仅可以抽取属性、事件,可以抽取整个结构。 可传递参数
注意: Builder的定义分为 全局定义 和在 组件内定义 ( 需写在 struct 中 )。组件内定义的作用域仅在该组件内且使用时需加上 this
// 全局 Builder
@Builder function MyBuilder1(title: string){
// 内部可以有多个组件
Column(){}
Row(){}
}
@Component
struct component1{
builder(){
Column(){
// 全局 Builder 直接使用
MyBuilder1()
// 局部的 Builder 使用需加上 this
this.MyBuilder2()
}
}
// 局部 Builder
@Builder MyBuilder2(title: string){
Column(){}
Row(){}
}
}
@Component
自定义组件,功能更强大的 @Builder。
内部的写法与
@Component
struct MyComponent{
builer(){
}
}
模态转场
binSheet 半模态转场
一个通用方法,可以写在任意位置。
// 控制半模态转场是否开启, 需使用双向绑定否则在关闭时无法修改状态值
@State binSheetShow: boolen = false
// 半模态转场内显示的组件样式
@Builder MyBuilder(){}
Row(){}
.binSheet($$this.binSheeetShow, this.MyBuilder, {
.height()
. ...
})
-
第三个参数对象的具体值
属性 描述 height/ width ( number ) 设置半模态转场的宽高 detents ( number[] ) 设置阶段高度,设置后 height 属性将失效 dragBar ( boolean ) 设置是否显示控制条 showClose ( booelan ) 是否显示关闭按钮
bindContentCover 全模态转场
属性用法同上