HarmonyOS 鸿蒙Next 调用半模态会有两个弹窗
HarmonyOS 鸿蒙Next 调用半模态会有两个弹窗
调用半模态会有两个弹窗
show用的是双向绑定
使用系统自带的关闭按钮会出现关两次弹窗的情况和下滑关闭一致
直接修改Show状态的话则没有异常,这种情况要怎么修改
2 回复
@Entry
@Component
export struct second {
@State currentIdx: number = 0
arr: number[] = [1, 2, 3, 4]
@State isHoverText: Array<boolean> = new Array<boolean>(this.arr.length).fill(false)
@Builder myBuilder() {
Column() {
Button('content1')
.margin(10)
.fontSize(20)
Button("content2")
.margin(10)
.fontSize(20)
.onClick(()=>{
//根据保存的currentIdx 自定义按钮关闭
this.isHoverText[this.currentIdx] = false;
})
}
.width('100%')
}
build() {
Column() {
ForEach(this.arr, (item: number, idx: number) => {
Row(){
Text('银行卡')
Button('立减14元')
.onClick(() => {
this.currentIdx=idx
this.isHoverText[idx] = true;
})
.fontSize(15)
.margin(10)
.bindSheet(this.isHoverText[idx], this.myBuilder(), {
backgroundColor:Color.Gray,
height: SheetSize.MEDIUM,
showClose: false,//不显示默认关闭按钮
onDisappear: () => {
this.isHoverText[idx] = false;
}
})
Checkbox()
}.border({width: 1, radius: 5})
})
}
.justifyContent(FlexAlign.Start)
.width('100%')
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 调用半模态会有两个弹窗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next在调用半模态弹窗时,若出现两个弹窗的问题,通常是由于弹窗管理逻辑或事件处理不当导致。
可能原因包括:
-
弹窗重复触发:在代码中可能存在多次调用弹窗接口的情况,导致弹窗多次显示。检查触发弹窗的代码逻辑,确保弹窗只在需要时触发一次。
-
弹窗栈管理不当:鸿蒙系统的弹窗管理可能依赖于一个弹窗栈,如果弹窗没有正确关闭或出栈,可能会导致新的弹窗显示时,旧的弹窗仍保留在屏幕上。确保每次打开新弹窗后,适时关闭不再需要的弹窗。
-
异步处理不当:如果弹窗的显示是在异步任务中处理的,可能会因为异步任务的执行顺序或时间差导致弹窗显示异常。检查异步任务的处理逻辑,确保弹窗的显示和关闭操作在正确的时机进行。
解决这类问题,通常需要仔细检查弹窗的调用和关闭逻辑,确保弹窗的显示和关闭操作是正确且合理的。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html