HarmonyOS 开发一个聊天应用,输入框在底部,如何处理键盘弹起整个页面被顶起的问题,有没有DEMO啊

最近在做一个聊天页面的开发,发下当TextArea位于页面底部,每次获取焦点弹出输入框之后,整个页面都被顶起来了。请问下有么有这种类似的demo参考啊。

我看官网上https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/tutorials_NEXT-MultiDeviceCommunication这个例子也是一样的输入框弹出来会将聊天页面整体顶上去。

如果不想被顶起,就类似普通聊天应用一样输入框弹起,只有TextArea被跟随弹起来

HarmonyOS
2024-08-28 18:23:00
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

您可参考以下代码,看是否满足您的需求:

onWindowStageCreate(windowStage: window.WindowStage): void { 
  // Main window is created, set main page for this ability 
  hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 
  windowStage.loadContent('pages/ChildPage', (err, data) => { 
  let a = windowStage.getMainWindowSync().getUIContext().getKeyboardAvoidMode(); 
  // 设置虚拟键盘抬起时把页面上抬直到露出光标 
  windowStage.getMainWindowSync().getUIContext().setKeyboardAvoidMode(KeyboardAvoidMode.OFFSET); 
  if (err.code) { 
  hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 
  return; 
} 
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 
}); 
 
}
@Entry 
@Component 
struct SafeAreaExample { 
  @State text: string = '' 
  controller: TextInputController = new TextInputController() 
 
  build() { 
    Row() { 
      Stack() { 
        Column() 
          .height('100%').width('100%') 
          .backgroundColor(Color.Green) 
          .expandSafeArea([SafeAreaType.KEYBOARD, SafeAreaType.SYSTEM]) 
        Column() { 
          Button('Set caretPosition 1') 
            .onClick(() => { 
              this.controller.caretPosition(1) 
            }) 
          TextArea({ text: this.text, placeholder: 'input your word...', controller: this.controller }) 
            .placeholderFont({ size: 14, weight: 400 }) 
            .width(320).height(40).offset({y: 120}) 
            .fontSize(14).fontColor(Color.Black) 
            .backgroundColor(Color.White) 
        }.width('100%').alignItems(HorizontalAlign.Center) 
      } 
    }.height('100%') 
  } 
}

您可以参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-expand-safe-area-V5

分享
微博
QQ
微信
回复
2024-08-28 22:45:13
相关问题
HarmonyOS 自定义键盘不能顶起输入框
526浏览 • 1回复 待解决
HarmonyOS webview里输入框键盘覆盖
166浏览 • 1回复 待解决
HarmonyOS web中输入框键盘遮住
198浏览 • 1回复 待解决
HarmonyOS navigation title 键盘顶起
134浏览 • 1回复 待解决
HarmonyOS 键盘弹起,UI压缩
265浏览 • 1回复 待解决
H5页面输入框自动获焦弹起键盘
1999浏览 • 1回复 待解决