HarmonyOS鸿蒙Next中自定义组件间如何实现从底部滑入滑出的效果
HarmonyOS鸿蒙Next中自定义组件间如何实现从底部滑入滑出的效果 问题描述
一个页面底部默认显示自定义组件A,点击自定义组件A,则A消失,自定义组件B从底部出现;点击自定义组件B,则组件B消失,A从底部出现。这个效果要如何实现?
解决措施
可以使用transition产生组件转场动画,其参数type用来设置组件变化场景,包括新增和删除;参数translate用来设置转场时的平移效果。注意transition需要配合animateTo才能生效,动效时长、曲线、延时跟随animateTo中的配置。
代码示例
@Entry
@Component
struct ComponentTransition {
@State flag: boolean = true;
build() {
Stack({ alignContent: Alignment.Bottom }) {
if (this.flag) {
ComponentChild1({ flag: $flag })
.transition({ type: TransitionType.Insert, translate: { x: 0, y: 200 } })
}
if (!this.flag) {
ComponentChild2({ flag: $flag })
.transition({ type: TransitionType.Insert, translate: { x: 0, y: 200 } })
}
}.height('100%').width('100%')
}
}
@Component
struct ComponentChild1 {
@Link flag: boolean
build() {
Column() {
Image($r('app.media.ic_banner01'))//resources\base\media路径
.width('100%')
.height(200)
.onClick(() => {
animateTo({ duration: 1000 }, () => {
this.flag = !this.flag;
})
})
}
}
}
@Component
struct ComponentChild2 {
@Link flag: boolean
build() {
Column() {
Image($r('app.media.ic_banner02'))//resources\base\media路径
.width('100%')
.height(200)
.onClick(() => {
animateTo({ duration: 1000 }, () => {
this.flag = !this.flag;
})
})
}
}
}
参考链接
更多关于HarmonyOS鸿蒙Next中自定义组件间如何实现从底部滑入滑出的效果的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于HarmonyOS鸿蒙Next中自定义组件间如何实现从底部滑入滑出的效果的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,可以通过@ohos.animator
模块实现自定义组件的底部滑入滑出效果。首先,使用Animator
类创建动画对象,设置translateY
属性来控制组件在Y轴上的移动。然后,通过start
和stop
方法控制动画的启动和停止。具体步骤包括:定义动画属性、设置动画持续时间、绑定动画到组件,并在需要时触发动画。例如,可以通过按钮点击事件触发滑入滑出效果。