HarmonyOS 鸿蒙Next List嵌套List和List嵌套Grid
1.第一层使用List的LazyForEach嵌套第二层的List可以正常显示; 2.但我将第二层的List换成Grid便不能显示内容 3.当我使用第二层List的lanes属性来完成我多列的需要时,顶部会多出一大段空白区域
//部分代码如下,GroupResourceComponent的外层是一个Tabs的TabContent
@Component
struct GroupResourceComponent {
@Link dataSource: GalleryDataSource
build() {
List({ space: CommonConstants.MARGIN_12_PX }) {
LazyForEach(this.dataSource, (resources: SystemGalleryGroup) => {
ListItem() {
Column() {
SelectBarComponent({
time: resources.date, onChangeSelect: (isSelect: boolean) => {
}
})
Blank().height(CommonConstants.MARGIN_12_PX)
AlbumResourceComponent({ resources: resources.resources })
}
.width(CommonConstants.FULL_SIZE)
}
}, (item: SystemGalleryModel) => `${item.resourceName}${new Date().getTime()}`)
}
.width(CommonConstants.FULL_SIZE)
}
}
@Component
struct AlbumResourceComponent {
@ObjectLink resources: SystemGalleryArray
build() {
Column() {
List({ space: CommonConstants.MARGIN_16_PX }) {
ForEach(this.resources, (item: SystemGalleryModel) => {
ListItem() {
ResourceItemComponent({ item: item })
}
}, (item: SystemGalleryModel) => `${item.cover.toString()}`)
}
.width(CommonConstants.FULL_SIZE)
.lanes(3)
.alignListItem(ListItemAlign.Start)
// Grid() {
// ForEach(this.resources, (item: SystemGalleryModel, index)=>{
// GridItem(){
// ResourceItemComponent({item: this.resources[index]})
// }
// })
// }
// .width(CommonConstants.FULL_SIZE)
// .columnsTemplate('1fr 1fr 1fr')
// .columnsGap(CommonConstants.MARGIN_16_PX)
// .rowsGap(CommonConstants.MARGIN_32_PX)
}
.width(CommonConstants.FULL_SIZE)
}
}
更多关于HarmonyOS 鸿蒙Next List嵌套List和List嵌套Grid的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
1.不设置rowsTemplate/columnsTemplate的时候,默认是能根据内容撑开的,Grid不需要指定宽高。
2.设置了rowsTemplate/columnsTemplate任意一个和都设置,默认跟父组件同宽高,Grid就需要指定宽高。
这边设置了 .columnsTemplate('1fr 1fr 1fr'),所以需要给Grid一个高度。
或者可以把columnsTemplate去掉,给GridItem里面的界面设置宽度高度。
更多关于HarmonyOS 鸿蒙Next List嵌套List和List嵌套Grid的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,处理Next List嵌套List和List嵌套Grid的布局,可以通过以下方式实现:
-
Next List嵌套List:
- 使用
ListContainer
组件作为外层容器,并设置其数据源。 - 在每个列表项中,嵌套另一个
ListContainer
作为子列表,并为其设置独立的数据源。 - 通过数据绑定和事件处理,实现外层列表和子列表的交互,如点击外层列表项时展开或收起子列表。
- 使用
-
List嵌套Grid:
- 同样使用
ListContainer
作为外层列表容器。 - 在每个列表项中,嵌套一个
GridContainer
组件。 - 为
GridContainer
设置列数和数据源,以展示网格布局的子项。 - 可以通过调整数据源和布局参数,控制网格中项目的排列和显示。
- 同样使用
在鸿蒙系统的开发环境中,这些组件的使用和布局设置都可以通过XML布局文件或JavaScript代码实现。确保在开发过程中,正确配置组件的属性,如数据源、事件监听器等,以实现所需的嵌套布局效果。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html