HarmonyOS 鸿蒙Next侧边栏控件SideBarContainer,设置动画属性后首次点击显示,没有正常显示出来
HarmonyOS 鸿蒙Next侧边栏控件SideBarContainer,设置动画属性后首次点击显示,没有正常显示出来
4 回复
试试这个Demo
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
[@State](/user/State) arr: number[] = [1, 2, 3]
[@State](/user/State) current: number = 1
[@State](/user/State) showSideBar: boolean = false
[@State](/user/State) showFlag: Visibility = Visibility.Hidden;
// 延迟关闭侧边栏,让自定义的出场动画显示
cancel() {
this.showFlag = Visibility.Hidden
setTimeout(() => {
this.showSideBar = !this.showSideBar
}, 1000)
}
build() {
SideBarContainer(SideBarContainerType.Overlay) {
Column() {
ForEach(this.arr, (item: number) => {
Column({ space: 5 }) {
Text("Index0" + item )
.fontSize(25)
.fontColor(this.current === item ? '#0A59F7' : '#999')
.fontFamily('source-sans-pro,cursive,sans-serif')
}
.onClick(() => {
this.current = item
})
}, (item: string) => item)
}
.visibility(this.showFlag)
.transition(TransitionEffect.OPACITY.animation({ duration: 1000 })
.combine(TransitionEffect.translate({ x: 100 })))
.width('100%')
.justifyContent(FlexAlign.SpaceEvenly)
.backgroundColor(Color.Pink)
Column() {
Button('打开侧边栏').onClick(() => {
this.showFlag = Visibility.Visible
this.showSideBar = true
}
)
Button('关闭侧边栏').onClick(() => {
this.cancel()
})
}
}
.divider(null)
.sideBarPosition(SideBarPosition.End)
.showSideBar(this.showSideBar)
.showControlButton(false)
.sideBarWidth(150)
.minSideBarWidth(50)
.maxSideBarWidth(300)
.minContentWidth(0)
.onChange((value: boolean) => {
console.info('status:' + value)
})
}
}
你把
.animation({ duration: 500, iterations: 1 })
这行代码删掉试试
针对HarmonyOS 鸿蒙Next侧边栏控件SideBarContainer设置动画属性后首次点击显示不正常的问题,可能是动画设置或组件状态初始化有误。请检查以下几点:
- 确保动画属性的设置正确无误,如动画时长、延迟等。
- 检查侧边栏控件的初始状态(如是否默认隐藏),确保与动画逻辑相匹配。
- 验证是否有其他样式或布局设置干扰了侧边栏的显示。
如果问题依旧没法解决,请加我微信,我的微信是itying888,以便进一步分析并提供帮助。