@CustomDialog的高度,如何在键盘弹出与收起时保持视觉高度?

在一个customDialog里有一个输入框,在这个输入框 拥有和失去键盘时, 希望这个customDialog的高度可以同步减少高度,以保证这个dialog的视觉高度不变。

HarmonyOS
2024-10-09 11:04:40
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

参考以下代码:

@Entry  
@Component  
struct Index{  
  @StorageLink('keyboardHeight') keyboardHeight: number = 0;  
  @State keyboardHeight1: number = this.keyboardHeight;  
  @State value:string = ''  
  
  @Builder  
  mySheet() {  
    TextArea({ placeholder: '点击弹起键盘', text: this.value })  
      .fontSize(20)  
      .height(550)  
      .backgroundColor(Color.White)  
      .margin({  
        top: 20,  
        bottom: 20  
      })  
      .layoutWeight(1)  
      .maxLength(1000)  
      .showCounter(true)  
      .padding({bottom:px2vp(this.keyboardHeight) - 160})  
  
      .onChange((value:string) => {  
        this.value = value;  
      })  
  
  }  
  
  build() {  
    Text().bindSheet(true, this.mySheet(), {  
      height: 730,  
      dragBar: false,  
      backgroundColor: Color.White,  
      showClose: false,  
      shouldDismiss: () => {  
      }  
    })  
  }  
}  
//entryability中:  
onWindowStageCreate(windowStage: window.WindowStage): void {  
  // Main window is created, set main page for this ability  
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');  
  
  windowStage.getMainWindow((err, data) =>{  
  if (err.code) {  
  console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));  
  return;  
}  
let windowClass = data;  
try {  
  windowClass.on('keyboardHeightChange', (data) => {  
    console.log('----->' + data.toString())  
    AppStorage.setOrCreate('keyboardHeight', data);  
  });  
} catch (exception) {  
  console.error('Failed to enable the listener for keyboard height changes. Cause: ' + JSON.stringify(exception));  
}  
  
})
分享
微博
QQ
微信
回复
2024-10-09 16:12:45
相关问题
HarmonyOS 如何获取软键盘高度?
747浏览 • 1回复 待解决
CustomDialog键盘问题
425浏览 • 1回复 待解决
HarmonyOS如何获取系统软键盘高度
496浏览 • 1回复 待解决
HarmonyOS如何收起键盘
417浏览 • 1回复 待解决
文字空行高度字体高度不一致
2100浏览 • 1回复 待解决
如何在TextArea中设置最小高度
542浏览 • 1回复 待解决
如何获取状态栏导航栏高度
232浏览 • 0回复 待解决
获取状态栏导航栏高度
636浏览 • 1回复 待解决
HarmonyOS web高度自适应内容高度
36浏览 • 1回复 待解决