参考以下demo:import window from '@ohos.window'; @Entry @Component struct Index { @State screenHeight: number = 0; aboutToAppear() { window.getLastWindow(getContext(this)).then(currentWindow =>{ let property = currentWindow.getWindowProperties(); let avoidArea = currentWindow.getWindowAvoidArea(window.AvoidAreaType.TYPE_KEYBOARD); // 初始化显示区域高度 this.screenHeight = px2vp(property.windowRect.height - avoidArea.bottomRect.height); // 监视软键盘的弹出和收起 currentWindow.on('avoidAreaChange', async data => { if (data.type !== window.AvoidAreaType.TYPE_KEYBOARD) { return; } this.screenHeight = px2vp(property.windowRect.height - data.area.bottomRect.height); }) }) } build() { Row() { Column() { Text('请输入短信验证码') .fontSize(30) .margin({ bottom:'50' }) TextInput() .width('70%') .height('150px') .margin({ bottom: '30' }) Button('确定') .width('70%') .margin('20px') } .width('100%') } .width('100%').height(this.screenHeight) } }
参考以下demo: