【关键字】
popOffset / 修改 / dialog / 未同步 / CustomDialogController
【问题描述】
popOffset修改后,dialog偏移的位置没有改变。是否是因为CustomDialogController初始化后,再对其修改就无效了?
【解决方案】
自定义弹窗的所有参数,不支持动态刷新。
如果想改变CustomDialogExample中UI的位置,可以参考下面的demo。
@CustomDialog
struct CustomDialogExample {
@Link offsetY:number
controller: CustomDialogController = new CustomDialogController({
builder: CustomDialogExample({offsetY:this.offsetY}),
})
build() {
Column() {
Text('我是内容')
.fontSize(20)
.margin({ top: 10, bottom: 10 })
}
.offset({x:0,y:this.offsetY})
}
}
@Entry
@Component
struct Index {
@State offsetY:number = 500
dialogController: CustomDialogController = new CustomDialogController({
builder: CustomDialogExample({offsetY:this.offsetY}),
// offset:{dy: this.offsetY ,dx:0},
alignment:DialogAlignment.Top,
customStyle:true
})
build() {
Column() {
Button('click me')
.onClick(() => {
this.dialogController.open()
})
Button('offsetY+')
.onClick(() => {
this.offsetY = 100
})
Button('offsetY-')
.onClick(() => {
this.offsetY = 0
})
}.width('100%').margin({ top: 5 })
}
}