HarmonyOS 输入法顶起bindSheet调起的底部弹窗?

如题:HarmonyOS 输入法顶起bindSheet调起的底部弹窗?

阅读 551
1 个回答

可在EntryAbility下设置监听键盘状态的变化,设置键盘弹起的高度,联合bindSheet增加键盘高度。

height:

this.sheetHeight+px2vp(this.keyboardHeight)
EntryAbility代码:
windowStage.getMainWindow((err, data) => {
  if (err.code) {
    console.error('Failed to obtain the main window. Cause: ' + JSON.stringify(err));
    return;
  }
  let windowClass = data;
  //1. 设置监听键盘变化,用来设置inputview 避让输入法
  try {
    windowClass.on('keyboardHeightChange', (data) => {
      console.info('keyboardHeightChange. Data: ' + JSON.stringify(data));
      AppStorage.setOrCreate('keyboardHeight', data);
      console.info(AppStorage.get('keyboardHeight'))
    });
  } catch (exception) {
    console.error('Failed to enable the listener for keyboard height changes. Cause: ' + JSON.stringify(exception));
  }
})

Index.ets

Button("transition modal 1")
  .onClick(() => {
    this.isShow = true
  })
  .fontSize(20)
  .margin(10)
  .bindSheet($$this.isShow, this.myBuilder(), {
    height: this.sheetHeight+px2vp(this.keyboardHeight),
    backgroundColor: Color.Green,
    onAppear: () => {console.log("BindSheet onAppear.")},
    onDisappear: () => {console.log("BindSheet onDisappear.")}
  })
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进