HarmonyOS 鸿蒙Next transition组件内转场问题
HarmonyOS 鸿蒙Next transition组件内转场问题
组件出现的过渡动画是正常显示的,由下到上。
但在消失的时候过渡动画显示异常,直接跑到顶部了然后消失,不应该是往下慢慢消失吗
下面是代码,求大佬解释一下,是bug还是代码问题
@Component
@Entry
struct test{
@State checkCarType:boolean = false
@Builder test(){
Column(){
Text('组件')
}
.backgroundColor(Color.Green)
.position({bottom:500,left:0})
.zIndex(1)
.visibility(this.checkCarType? Visibility.Visible :Visibility.None)
.transition(
TransitionEffect.translate({y:1000}).animation({duration:1000}))
build(){
Column(){
this.test()
Button('显示').onClick((event: ClickEvent) => {
this.checkCarType = !this.checkCarType
})
}
.size({width:'100%',height:'100%'})
}
更多关于HarmonyOS 鸿蒙Next transition组件内转场问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
破案了,我知道为啥了,我也没注意这个细节;
.this.visibility(this.checkCarType ? this.Visibility.Visible : this.Visibility.Hidden)
不是使用 Visibility.None
啊,是用 Visibility.Hidden
;
使用 Visibility.None
的时候,不参与布局的,所以就没有动画效果。
更多关于HarmonyOS 鸿蒙Next transition组件内转场问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
原来如此,但是if的话不也是没参与布局吗,满足条件才显示啊
if /else 的话,会创建或者销毁组件,在某个生命周期钩子中,肯定是先执行了transition 动画,再进行销毁/创建组件。我理解跟 Visibility 不是一码事,Visibility.None 直接不参与布局,transition 完全没法去计算动画路径,所以不生效。
小哥帮忙点个采纳点赞呗😀,
能说什么,辛苦各位开发者了,
希望HarmonyOS能加强与其他品牌设备的兼容性,让更多人受益。
姓名
张三
职位
软件工程师
所在地
北京
个人简介
资深IT专家,专注于人工智能领域。
技能
- Python
- Java
- C++
代码改改吧,不要用 visibility
来控制
@Component
@Entry
struct test {
@State checkCarType: boolean = false
@State visible: boolean = false
@Builder
test() {
Column() {
Text('组件')
}
.backgroundColor(Color.Green)
.position({ bottom: 500, left: 0 })
.zIndex(1)
.transition(
TransitionEffect.translate({ y: 1000 }).animation({ duration: 1000 })
)
}
build() {
Column() {
if (this.checkCarType) {
this.test()
}
Button('显示').onClick((event: ClickEvent) => {
this.checkCarType = !this.checkCarType
})
}
.size({ width: '100%', height: '100%' })
}
}
换成 if
来进行控制,组件内转场主要通过 transition
属性,是在组件插入和删除时显示过渡动效,visibility
是不生效的。
当组件Visibility
属性在可见和不可见之间改变时,只触发该组件的transition效果。
官网这句话是什么意思啊,不是很懂,
HarmonyOS的分布式文件系统让我在多设备间共享文件变得更加方便。
我也看到官网这句话了,没太理解,反正我之前试了之后,Visibility 触发总是有问题,感觉官网文档有问题,目前只有 插入和删除有正常的 transition 触发。业务中不行就用 animateTo 吧,不过 transition 的性能会更好。
好的,算是解决了,非常感谢,
针对HarmonyOS(鸿蒙)Next transition组件内转场问题,以下提供直接相关的解答:
在HarmonyOS中,Next transition组件用于实现页面或元素之间的过渡效果。若遇到内转场问题,可能涉及以下几个关键点:
-
过渡属性配置:确保在XML布局文件或代码中正确配置了过渡属性,如
enterAnim
、exitAnim
、sharedElementEnterAnim
和sharedElementExitAnim
等,这些属性定义了元素进入、退出以及共享元素过渡时的动画效果。 -
共享元素匹配:对于共享元素过渡,确保在两个页面或布局中,共享元素的transitionName属性一致,这是实现元素平滑过渡的关键。
-
触发时机:检查过渡效果的触发时机是否正确,通常是在页面跳转或元素状态改变时通过代码或XML配置触发。
-
版本兼容性:确认所使用的HarmonyOS版本是否支持所需的过渡效果,某些高级过渡特性可能需要在特定版本或更高版本中才能使用。
-
调试与日志:利用开发者工具中的调试功能和日志输出,检查过渡效果执行过程中是否有异常或错误发生。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html,