在 OpenHarmony(ArkUI)里,“列表组件”通常指 List / Grid / WaterFlow 等可滚动容器。所谓“适配”,一般包含以下几类场景。下面按常见需求给你一套实用说明。
pxList() {
...
}
.width('100%')
.padding({ left: 16, right: 16 })
import mediaquery from '@ohos.mediaquery'
let mq = mediaquery.matchMediaSync('(min-width: 600vp)')
mq.on('change', (result) => {
// 平板 / 手机不同布局
})
List() {
ForEach(this.data, item => {
ListItem() {
Text(item)
}
})
}
.width('100%')
List({ space: 12 }) {
...
}
.listDirection(Axis.Horizontal)
Grid() {
ForEach(this.data, item => {
GridItem() {
Text(item)
}
})
}
.columnsTemplate(
this.isPad ? '1fr 1fr 1fr' : '1fr'
)
WaterFlow() {
ForEach(this.data, item => {
FlowItem() {
Text(item)
}
})
}
.columnsTemplate(
this.isPad ? '1fr 1fr 1fr' : '1fr 1fr'
)
✅ 非常适合图片流、商品列表
import window from '@ohos.window'
window.getLastWindow(getContext()).then(win => {
win.setWindowLayoutFullScreen(true)
})
列表顶部留白:
List()
.padding({ top: 20 })
Text('列表')
.fontColor($r('app.color.text_primary'))
resources 中配置:
color.jsondark/color.jsonLazyForEach(this.dataSource, item => {
ListItem() {
Text(item)
}
})
List() {
...
}
.cachedCount(5)
❌ 不要写死高度
✅ 使用 layoutWeight / flex
❌ 不要在 List 里嵌套 Scroll
✅ 列表内部用 ListItem
你可以告诉我:
我可以直接给你可运行示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。