一、实验目的
使用 HarmonyOS 的 Grid 组件实现一个 4x4 的网格布局,每个网格项显示文本 "itemX"(X 为 0 到 15 的数字),并设置合适的样式。使用column、row、list、grid组件完成基本属性设置。用循环渲染显示list与grid组件列表项。
二、实验设备与环境
- 开发软件:DevEco Studio
- 操作系统:HarmonyOS
- API版本:API9
三、实验步骤
1.点击Creat Project创建一个项目

2.按图示步骤点击

3.填写项目名、api版本、Model和Node

4.在entry/src/main/resources/base/element下添加以下文件
color.json
{
"color": [
{
"name": "start_window_background",
"value": "#FFFFFF"
},
{
"name": "grid_background",
"value": "#007DFF"
},
{
"name": "grid_text",
"value": "#FFFFFF"
}
]
}
string.json
{
"string": [
{
"name": "module_desc",
"value": "module description"
},
{
"name": "EntryAbility_desc",
"value": "description"
},
{
"name": "EntryAbility_label",
"value": "label"
},
{
"name": "item",
"value": "item"
}
]
}
5.最后在entry/src/main/ets/pages/Index.ets文件编写代码
@Entry
@Component
struct GridPage {
// 创建一个包含 16 个元素的数组,用于渲染网格项
private items: string[] = Array.from({ length: 16 }, (_, index) => `item${index}`);
build() {
Column() {
Grid() {
ForEach(this.items, (item: string) => {
GridItem() {
Text(item)
.fontSize(16)
.fontColor($r('app.color.grid_text'))
.backgroundColor($r('app.color.grid_background'))
.width('100%')
.height('100%')
.textAlign(TextAlign.Center)
.borderRadius(0)
}
}, item => item)
}.columnsTemplate('1fr 1fr 1fr 1fr') // 设置为 4 列
.rowsTemplate('1fr 1fr 1fr 1fr') // 设置为 4 行
.columnsGap(1) // 设置列间距
.rowsGap(1) // 设置行间距
.height(300) // 设置网格高度
}
.width('100%') // 设置网格宽度
.padding(12) // 添加内边距
.backgroundColor(0xF1F3F5) // 设置背景颜色
}
}
6.实现效果

四、总结
本次实验学习了HarmonyOS中Grid组件的使用方法和布局技巧,可应用到更复杂的界面设计中,为开发高质量HarmonyOS应用打下基础。遇到网格显示错误、资源引用失败等问题,通过检查代码语法、资源路径和属性设置解决。