HarmonyOS new CustomDialogController初始化后,再修改属性应该怎么实现
创建CustomDialogController对象并初始化属性后,想再改变属性的值。select选择蒙层颜色后,maskColorIndex改变了,但是CustomDialogController对象的mask颜色没变化。
代码如下:
@Entry
@Component
struct Index {
@State textValue: string = ''
@State inputValue: string = 'click me'
@State autoCancel: boolean = true
private alignArr: DialogAlignment[] = [DialogAlignment.Top, DialogAlignment.TopStart, DialogAlignment.TopEnd, DialogAlignment.Bottom, DialogAlignment.BottomStart, DialogAlignment.BottomEnd]
@State alignIndex: number = 3
private maskColor: ResourceColor[] = ['#0000ff', 0x33000000, Color.Gray,Color.Transparent]
@State maskColorIndex: number = 0
private curveArr: Curve[] = [Curve.Linear, Curve.Ease]
@State curveIndex: number = 0
@State closeDuration: number = 0
@State closeTempo: number = 0
@State closeDelay: number = 0
@State closeIterations: number = 0
dialogController: CustomDialogController = new CustomDialogController({
builder: CustDialog({
textValue: $textValue,
inputValue: $inputValue
}),
cancel: () => {
console.info('Click the callback in the blank area')
},
autoCancel: this.autoCancel,
alignment: this.alignArr[this.alignIndex],
gridCount: 4,
customStyle: false,
maskColor:this.maskColor[this.maskColorIndex],
openAnimation: ({}),
closeAnimation: ({
curve: this.curveArr[this.curveIndex],
duration: this.closeDuration,
tempo: this.closeTempo,
delay: this.closeDelay,
iterations: this.closeIterations,
})
})
build() {
Column() {
Button('默认属性').onClick((event: ClickEvent) => {
if (this.dialogDefaultAttr != undefined) {
this.dialogDefaultAttr.open()
}
})
.margin(5)
Button(this.inputValue)
.focusable(true)
.onClick(() => {
if (this.dialogController != undefined) {
this.dialogController.open()
}
})
.margin({ bottom: 10 })
Row() {
Row() {
Text('弹窗位置')
Select([
{ value: '顶部' },
{ value: '左上' },
{ value: '右上' },
{ value: '底部' },
{ value: '左下' },
{ value: '右下' }
])
.value('底部')
.onSelect((index: number) => {
this.alignIndex = index
})
}.width('40%').justifyContent(FlexAlign.Center)
Row() {
Text('蒙层颜色')
Select([
{ value: '#0000ff' },
{ value: '0x33000000' },
{ value: 'Color.Gray' },
{value:'透明'}
])
.value('#0000ff')
.onSelect((index: number) => {
this.maskColorIndex = index
})
}.width('60%').justifyContent(FlexAlign.Center)
}.width('100%').justifyContent(FlexAlign.SpaceAround)
Toggle({type:ToggleType.Switch,isOn:true})
.onChange((isOn:boolean)=>{
this.autoCancel=isOn
})
}
.width('100%')
.height('100%')
}
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS taskpool中new 对象报错未初始化
1379浏览 • 1回复 待解决
HarmonyOS 初始化地图后想修改地图的中心点坐标, 怎么修改?
942浏览 • 1回复 待解决
HarmonyOS 主线程初始化的静态属性,worker线程访问时候是未初始化
1211浏览 • 1回复 待解决
HarmonyOS Class里面怎么实现@Link的初始化
1498浏览 • 1回复 待解决
HarmonyOS @State修饰的不应该必须初始化
1141浏览 • 1回复 待解决
HarmonyOS Module引用三方库后怎么初始化
1148浏览 • 1回复 待解决
HarmonyOS泛型类的属性如何初始化?
1609浏览 • 1回复 待解决
CustomDialogController 如何脱离 @Component 初始化?更好的减少低耦合?
3556浏览 • 1回复 待解决
怎么进行全局初始化操作?
560浏览 • 0回复 待解决
HarmonyOS 怎么监听Web初始化完成?
1213浏览 • 1回复 待解决
HarmonyOS XComponent初始化
1417浏览 • 1回复 待解决
怎么设置默认初始化属性以避免日志工具类调用时出错?
1228浏览 • 1回复 待解决
HarmonyOS 使用MMKV在主线程中初始化后,在worker线程中无法使用,需要重新初始化
1283浏览 • 1回复 待解决
HarmonyOS Component初始化问题
1779浏览 • 1回复 待解决
HarmonyOS 组件初始化参数
975浏览 • 1回复 待解决
HarmonyOS struct初始化方法
1262浏览 • 1回复 待解决
JSON初始化后有数据,如何跳过二次初始化?
601浏览 • 1回复 已解决
封装业务自定义弹窗CustomDialogController能在非Component里面初始化吗
1311浏览 • 1回复 待解决
HarmonyOS 推送服务初始化失败
1251浏览 • 1回复 待解决
HarmonyOS 应用RDB初始化示例
1494浏览 • 1回复 待解决
webview初始化加载网页后crash,请问如何定位
2931浏览 • 1回复 待解决
HarmonyOS entry怎么通知附属的hsp初始化sdk
1501浏览 • 1回复 待解决
HarmonyOS 初始化EGL环境失败
1167浏览 • 1回复 待解决
在HarmonyOS开发中,如何实现全局初始化操作?
1043浏览 • 0回复 待解决
HarmonyOS 在一个类中,怎么初始化一个BigInt类型的属性?
1081浏览 • 1回复 待解决
修改属性后在重新new CustomDialogController初始化就可以了。