grid组件及数据懒加载
在常用的手机应用中,经常会见到一些数据列表,如设置页面、通讯录、商品列表等。下图中两个页面都包含列表,“首页”页面中包含两个网格布局,“商城”页面中包含一个商品列表。
透过上面的现象,其实可以把以上抽象为两类列表,一个是网格列表(Grid),一个是线性列表(List),具体抽象出来的图像如下图。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
#鸿蒙通关秘籍#在Grid布局中如何实现懒加载?
119浏览 • 1回复 待解决
HarmonyOS 懒加载的数据删除问题
494浏览 • 1回复 待解决
Tabs组件懒加载的问题
2325浏览 • 1回复 待解决
HarmonyOS List组件及Grid组件及WaterFlow组件改进或新增Group机制
25浏览 • 1回复 待解决
HarmonyOS 懒加载
36浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现高效的数据懒加载?
108浏览 • 1回复 待解决
HarmonyOS 希望 Tabs 组件能提供懒加载功能
280浏览 • 1回复 待解决
HarmonyOS Tabs选项卡组件是否有懒加载
29浏览 • 1回复 待解决
HarmonyOS tabContent懒加载问题
0浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现二级联动的List组件数据懒加载?
122浏览 • 0回复 待解决
如何实现Fraction懒加载功能?
7454浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙高性能组件懒加载如何实现?
110浏览 • 1回复 待解决
Grid和List添加自定义的Header或Footer,LazyForEach的懒加载和回收功能失效
821浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何创建高效的懒加载轮播图组件?
133浏览 • 1回复 待解决
如何让list-item组件里的image图片懒加载?
2435浏览 • 1回复 待解决
界面内容瀑布流懒加载实现
1045浏览 • 1回复 待解决
HarmonyOS 列表展示list懒加载问题
657浏览 • 1回复 待解决
LazyForEach懒加载的原理是什么
2226浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何实现评论功能列表,并懒加载评论数据?
129浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中实现懒加载评论数据并更新UI?
143浏览 • 1回复 待解决
使用LazyForEach懒加载列表相关问题
887浏览 • 1回复 待解决
#鸿蒙通关秘籍# 鸿蒙应用中如何使用LazyForEach进行信息列表的数据懒加载?
175浏览 • 1回复 待解决
#鸿蒙通关秘籍#鸿蒙开发中使用LazyForEach进行数据懒加载的实现方法
116浏览 • 1回复 待解决
#鸿蒙通关秘籍#在鸿蒙系统TabContent组件中如何实现懒加载和组件冻结功能?
194浏览 • 1回复 待解决
使用的核心API
Grid-容器组件
LazyForEach:数据懒加载
核心代码解释
和List组件一样,Grid组件也可以使用ForEach来渲染多个列表项GridItem,示例代码中创建了16个GridItem列表项。同时设置columnsTemplate的值为'1fr 1fr 1fr 1fr',表示这个网格为4列,将Grid允许的宽分为4等分,每列占1份;rowsTemplate的值为'1fr 1fr 1fr 1fr',表示这个网格为4行,将Grid允许的高分为4等分,每行占1份。
这样就构成了一个4行4列的网格列表,然后使用columnsGap设置列间距为10vp,使用rowsGap设置行间距也为10vp。
上面构建的网格布局使用了固定的行数和列数,所以构建出的网格是不可滚动的。然而有时候因为内容较多,我们通过滚动的方式来显示更多的内容,就需要一个可以滚动的网格布局。我们只需要设置rowsTemplate和columnsTemplate中的一个即可。
将示例代码中GridItem的高度设置为固定值,例如100;仅设置columnsTemplate属性,不设置rowsTemplate属性,就可以实现Grid列表的滚动。
基于以上示例都是在理想情况下演示,一般list和gird是日常开发中用的最多的容器组件,一般在实际开发中我们数据库的内容成千上万,假如我们要一次性全部在手机上记载出来,那是不可能的,所以为了用户的体验,我们一般会用数据懒加载来实现这种多数据展示,而对用户来说是无感知的,增强用户体验。
LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。
代码如下:
实现效果