如何实现共享元素转场

如何实现共享元素转场

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 咨询共享元素动态转场示例
442浏览 • 1回复 待解决
如何实现动画转场效果
873浏览 • 1回复 待解决
如何实现多线程数据共享
2245浏览 • 1回复 待解决
如何实现跨线程数据共享
292浏览 • 1回复 待解决
HAP和HSP之间如何实现数据共享
1909浏览 • 1回复 待解决
如何实现模态转场操作过程?
297浏览 • 1回复 待解决
HarmonyOS Navigation实现Dialog转场动画
38浏览 • 1回复 待解决
HarmonyOS list元素拖动换位置的实现
0浏览 • 1回复 待解决