介绍
本示例介绍在List组件内实现子组件超出容器边缘的布局样式的实现方法。
List组件clip属性默认为true,超出容器边缘的子组件会按照List的布局范围被裁剪。为此,可以在List组件内部添加一个占位的ListItem,以达到预期的布局效果。List占满整个窗口或者不可滚动的情况下,也可以在List外占位,同时设置List的clip属性为false达成同样的效果。
该布局效果多用于头像、列表子项标题等元素的突出显示。
效果图预览
使用说明:
- 上下滑动屏幕,可以查看整个列表。
实现步骤
-
通过设置负的margin值,移动组件位置,使其超出父组件范围。
Image($r("app.media.io_user_portrait"))
.width(80)
.height(80)
.margin({ top: -50, left: 15 }) -
在List内部使用ListItem占位,包住超出的区域。
List() {
ListItem().height(40).selectable(false) // 占位组件
ListItem() { // 需要超出范围的组件
Image($r("app.media.io_user_portrait"))
.width(80)
.height(80)
.margin({ top: -50, left: 15 })
}
...
}
实现步骤(另一种方式)
-
通过设置负的margin值,移动组件位置,使其超出父组件范围。
Image($r("app.media.io_user_portrait"))
.width(80)
.height(80)
.margin({ top: -50, left: 15 }) -
在List组件外部使用Row占位,同时设置List.clip(false),允许滚动时上下溢出List组件的区域。
Row().height(60) // 占位组件
List() {
ListItem() { // 需要超出范围的组件
Image($r("app.media.io_user_portrait"))
.width(80)
.height(80)
.margin({ top: -50, left: 15 })
}
...
}.clip(false)
高性能知识点
不涉及
工程结构&模块类型
listitemoverflow // har类型
|---AboutMe.ets // 页面布局实现页面
模块依赖
参考资料
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ......
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ......
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ......
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向