往期知识点整理
- 鸿蒙(HarmonyOS)北向开发知识点记录~
- 【鸿蒙实战开发】基于Navigation的路由拦截管理
- 【鸿蒙实战开发】基于组件嵌套的滑动
- 【鸿蒙实战开发】基于Text的自定义字体
- 【鸿蒙实战开发】基于Grid实现混合布局
- 【鸿蒙实战开发】基于ArkUI实现类似Toast弹窗
- 【鸿蒙实战开发】基于短距离通信的BLE蓝牙扫描
- 【鸿蒙实战开发】HiLog日志能力介绍
- 【鸿蒙实战开发】基于HiAppEvent能力的应用崩溃监控上报
- 【鸿蒙实战开发】基于Refresh组件的下拉刷新
- 【鸿蒙实战开发】混合开发-web组件入门和实战
- 【HarmonyOS 鸿蒙实战开发】NavDestination弹窗
- 持续更新中……
介绍
本案例介绍了使用NavDestination组件的Dialog模式实现与前一个页面的联动的评论弹窗。
效果预览图
使用说明
点击案例中的商品介绍页面底部商店信息栏中的评论图标,即可拉起评论区弹窗,同时商品介绍页面自适应缩小。
此时在商品介绍页区域(或者未滑动浏览的评论区)可以通过手势向下滑动,缩小评论区高度的同时,增加商品介绍页面的高度,实现联动效果。
实现思路
- 创建商品介绍页面。
通过Navigation组件作为路由导航根容器,同时也作为本案例的商品介绍页的容器。
具体商品介绍组件内容省略。
build() {
Column() {
this.goodsItem()
}
.width($r('app.string.navdialog_full_size'))
}
@Builder
goodsItem() {
Column() {
// 商品图片
...
// 底部栏
this.shopBar(() => {
// 触发弹窗的回调函数
animateTo({
duration: Consts.COMMENT_DIALOG_TRANS_DURATION, curve: Curve.Ease }, () => {
this.ndDialogHeight = this.ndPageHeight * Consts.COMMENT_DIALOG_SCALE;
})
DynamicsRouter