代码拉取完成,页面将自动刷新
本示例介绍Stack堆叠组件和LoadingProgress加载组件模拟首次进入页面实现页面加载的效果。加载完成后,LoadingProgress组件会消失并展示加载结果页(即商品页)。
使用说明
build() {
Stack() {
if (this.isLoading) {
// 加载页
LoadingHUD();
} else {
// 商品页
CommodityList();
}
}
.width('100%')
.height('100%')
.backgroundColor(Color.White)
}
Canvas(this.politeChickyController)
.width($r('app.integer.lottie_view_canvas_size'))
.height($r('app.integer.lottie_view_canvas_size'))
.borderRadius($r('app.string.ohos_id_corner_radius_default_m'))
.onReady(() => {
// TODO:知识点:必须要Canvas组件初始化之后才能执行lottie.loadAnimation方法去加载动画。
this.initAnimation();
})
Row() {
Progress({ value: this.nowProgress, total: 100, type: ProgressType.Linear })
.style({ strokeWidth: 10, enableSmoothEffect: true })
.color(this.gradientColor)
}
.width('60%')
.margin({ top: $r('app.integer.lottie_view_canvas_height') })
aboutToAppear(): void {
// 模拟网络请求操作,请求网络3秒后得到数据,通知组件,变更列表数据
setTimeout(() => {
this.isLoading = false;
}, MILLISECONDS);
}
RelativeContainer() {
// 商品图片
Image(item.uri)
...
.alignRules({
top: { anchor: '__container__', align: VerticalAlign.Top },
left: { anchor: '__container__', align: HorizontalAlign.Start }
})
.id('image')
// 保价标签
Text(item.insurance)
...
.alignRules({
right: { anchor: '__container__', align: HorizontalAlign.End },
center: { anchor: '__container__', align: VerticalAlign.Center }
})
.id('insurance')
// 浏览量
Row() {
Image($r('app.media.page_loading_views'))
...
Text(item.views)
...
}
.alignRules({
middle: { anchor: 'insurance', align: HorizontalAlign.Center },
top: { anchor: 'insurance', align: VerticalAlign.Bottom }
})
.id('views')
// 标题和价格标签
Column() {
Text(item.title)
...
Text(item.price)
...
}
.alignRules({
left: { anchor: 'image', align: HorizontalAlign.End },
right: { anchor: 'insurance', align: HorizontalAlign.Start },
center: { anchor: 'image', align: VerticalAlign.Center }
})
.id('column')
}
本示例使用了LazyForEach进行数据懒加载,LazyForEach懒加载可以通过设置cachedCount属性来指定缓存数量,同时搭配组件复用能力以达到性能最优效果。
pageloading // har类型
|---mock
| |---CommodityMock.ets // 本地数据源
|---model
| |---CommodityDataModel.ets // 数据类型定义
| |---CommodityDataSource.ets // 列表数据模型
|---view
| |---CommodityList.ets // 商品列表自定义组件
| |---LoadingHUD.ets // 加载自定义组件
| |---PageLoading.ets // 主页面
不涉及
不涉及
1.本示例仅支持在标准系统上运行,支持设备:RK3568。
2.本示例为Stage模型,支持API12版本SDK,SDK版本号(API Version 12 Release)。
3.本示例需要使用DevEco Studio 5.0.0 Release 才可编译运行。
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/UI/PageLoading/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。