HarmonyOS 自定义表情键盘弹出时,布局不会自动重新渲染到软键盘上面,而系统的键盘弹出则正常

自定义表情键盘弹出时,布局不会自动重新渲染到软键盘上面,而系统的键盘弹出则正常,如图显示,请问该怎么处理,我的代码如下:

RichEditor({ controller: this.controller })// 绑定自定义键盘  
    .customKeyboard(this.isUseEmoji ? this.CustomKeyboardBuilder2() : null)  
    .backgroundColor("#F5F6F8")  
    .width("100%")  
    .height(50)


HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

​自定义键盘采用覆盖原始界面的方式呈现,不会对应用原始界面产生压缩或者上提。

参考文档:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-richeditor-V5#属性

解决方案:可以使用KeyboardAvoidMode,OFFSET:上抬模式。RESIZE:压缩模式。

可以使用。

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-arkui-uicontext-V5#keyboardavoidmode11

customKeyboard会覆盖原始界面,不支持对界面产生上提的功能。

需要在自定义键盘弹出时手动对富文本上提,使用margin属性。

以下是示意demo​。

build() {  
  Column() {  
    Row() {  
    }.layoutWeight(1.0)  
    RichEditor({ controller: this.controller })// 绑定自定义键盘  
      .customKeyboard(this.isUseEmoji ? this.CustomKeyboardBuilder() : null)  
      .margin(10)  
      .border({ width: 1 })  
      .height(200)  
      .borderWidth(1)  
      .borderColor(Color.Red)  
      .width('100%')  
      .margin({bottom:this.isClick?300:0})  
      .onClick(() => {  
        this.isClick =!this.isClick  
      })  
    Text("switch emoji").onClick(() => {  
      this.isUseEmoji = !this.isUseEmoji  
      this.controller.getSpans().forEach(  
        (value) => {  
          hilog.error(0x0001, "xxxxx", "" + value)  
        }  
      )  
    })  
  }  
}  
}
分享
微博
QQ
微信
回复
1天前
相关问题
软键盘弹出,页面的自适应
1239浏览 • 1回复 待解决
如何判断软键盘是否弹出
1927浏览 • 1回复 待解决
关于软键盘弹出遮挡问题
1005浏览 • 1回复 待解决
HarmonyOS 如何代码控制软键盘弹出
264浏览 • 1回复 待解决
鸿蒙软键盘弹出后,页面底部按钮
3892浏览 • 0回复 待解决
如何控制软键盘弹出对页面的遮挡?
2590浏览 • 1回复 待解决
HarmonyOS如何获取系统软键盘高度?
221浏览 • 1回复 待解决
HarmonyOS 自定义键盘
75浏览 • 1回复 待解决
HarmonyOS 弹窗不避让软键盘
270浏览 • 1回复 待解决