如何实现共享元素转场

如何实现共享元素转场

HarmonyOS
2024-08-01 09:28:39
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
e_lion

通过使用geometryTransition,可以实现NavDestination之间的共享元素转场效果。在配置共享元素转场的页面上,需要同时禁用系统默认的转场动画

为需要实现共享元素转场的组件添加geometryTransition属性,id参数必须在两个NavDestination之间保持一致。

// 起始页配置共享元素id
NavDestination() {
Column() {
    ...
    Image($r('app.media.startIcon'))
    .geometryTransition('sharedId')
    .width(100)
    .height(100)
}
}
.title('FromPage')

// 目的页配置共享元素id
NavDestination() {
Column() {
    ...
    Image($r('app.media.startIcon'))
    .geometryTransition('sharedId')
    .width(200)
    .height(200)
}
}
.title('ToPage')

将页面路由的操作,放到animateTo动画闭包中,配置对应的动画参数以及关闭系统默认的转场。

NavDestination() {
Column() {
跳转目的页')
    .width('80%')
    .height(40)
    .margin(20)
    .onClick(() => {
        animateTo({ duration: 1000 }, () => {
        this.pageStack.pushPath({ name: 'ToPage' }, false)
        })
    })
}
}
.title('FromPage')
分享
微博
QQ
微信
回复
2024-08-01 18:07:12
相关问题
HarmonyOS 咨询共享元素动态转场示例
111浏览 • 1回复 待解决
如何实现动画转场效果
581浏览 • 1回复 待解决
如何实现多线程数据共享
1886浏览 • 1回复 待解决
HAP和HSP之间如何实现数据共享
1587浏览 • 1回复 待解决
如何全局设置页面转场动画
473浏览 • 1回复 待解决
半模态转场如何控制固定高度
1639浏览 • 1回复 待解决
半模态转场实现弹框样式的页面
571浏览 • 1回复 待解决
TaskPool线程内存如何共享
1779浏览 • 1回复 待解决
如何获取元素位置和大小
1889浏览 • 1回复 待解决
Actor线程内存如何共享
178浏览 • 1回复 待解决
Worker线程内存如何共享
1946浏览 • 1回复 待解决
请问如何去掉ability的转场动画?
10969浏览 • 2回复 待解决