效果展示
知识点
层叠布局
介绍:层叠布局具有较强的 组件层叠 能力。
使用场景:卡片层叠效果
特点:层叠操作 更简洁,编码效率更高。【绝对定位的优势是更灵活】
Stack容器内的子元素顺序是先写的在最下面,即从下到上依次是item1 --> item2 --> item3
语法:
Stack({ alignContent: Alignment.Center }) { Item1() Item2() Item3() }
布局方位有9个
文字溢出省略号
作用:设置文本超长时的显示方式
语法:
.textOverflow({ overflow: TextOverflow.xxx })
注意:需要配合
.maxLines(行数)
使用
代码展示
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Column() {
Column() {
Stack({ alignContent: Alignment.BottomStart }) {
Image($r("app.media.bz_img"))
.width("100%")
.borderRadius({
topLeft: 20,
topRight: 20
})
Row() {
Image($r("app.media.bz_play"))
.width(20)
.fillColor("#fff")
Text("288万")
.fontColor("#fff")
.margin({
left: 5,
right: 15
})
Image($r("app.media.bz_msg"))
.width(20)
.fillColor("#fff")
Text("8655")
.fontColor("#fff")
.margin({
left: 5
})
Text("4:33")
.layoutWeight(1)
.textAlign(TextAlign.End)
.fontColor("#fff")
}
.padding(5)
}
Column({ space: 10 }) {
Text("【凤凰传奇新歌】欢迎来到国风统治区:唢呐一响神曲《铁衣之歌》")
.textOverflow({ overflow: TextOverflow.Ellipsis })
.maxLines(2)
Row() {
Text("19万点赞")
.padding(4)
.fontSize(14)
.fontColor("#DF7D58")
.backgroundColor("#FDEBE6")
Image($r("app.media.bz_more"))
.width(15)
.fillColor("#999")
}
.width("100%")
.justifyContent(FlexAlign.SpaceBetween)
}
.padding(10)
}
.width("80%")
.borderRadius(20)
.backgroundColor("#fff")
}
.padding(20)
.width("100%")
.height("100%")
.linearGradient({
angle: 135, // 设置颜色渐变起始角度为顺时针方向45°
colors: [
[0xceeff2, 0.0],
[0xf2e0de, 0.4],
[0xFFFFFF, 0.8],
]
})
}
}