aboutToAppear(): void {
this.getUIContext().setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE); // 压缩模式
// 获取屏幕高
let pageHeight = px2vp(display.getDefaultDisplaySync().height)
this.sheetHeight = pageHeight - 200
let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
window.getLastWindow(context)
.then((currentWidow) => {
let avoidArea = currentWidow.getWindowAvoidArea(window.AvoidAreaType.TYPE_SYSTEM)
currentWidow.on('avoidAreaChange', data => {
if (data.type != window.AvoidAreaType.TYPE_KEYBOARD) {
return
}
this.keboardHeight = px2vp(data.area.bottomRect.height) // 键盘高度
})
})
}
bindSheet 的简单例子
.bindSheet($$this.isShow, this.myBuilder(), { // 弹层
height: this.sheetHeight,
backgroundColor: Color.White,
maskColor: $r('app.color.gary55'),
showClose:false,
mode:SheetMode.EMBEDDED, // 不挡住后面push的新页面
onWillDismiss:() => {
this.closePopView()
},
onWillSpringBackWhenDismiss:() => {
this.closePopView()
}
})