HarmonyOS 鸿蒙Next 自定义弹窗内部含有textInput,键盘与dialog之间有间隙

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 自定义弹窗内部含有textInput,键盘与dialog之间有间隙 自定义弹窗内部含有textInput,键盘弹起时与dialog之间有间隙(底部)

4 回复

每次觉得自己写法不对时就来这里搜一搜,果然不是写的有问题,而是sdk有bug 😠

更多关于HarmonyOS 鸿蒙Next 自定义弹窗内部含有textInput,键盘与dialog之间有间隙的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


由于弹窗存在完全避让输入法行为,即在软键盘弹出时,会自动向上抬起软键盘高度,弹窗避让软键盘时,与软键盘之间存在16vp的安全间距。可以手动在软键盘弹起时设置offset:{y:16}来抵消安全距离。

openCustomDialog这种方式不生效吗?加了offset还是有间隙

this.commentsDialog = new ComponentContent(
    uiContext,
    wrapBuilder(buildFeedCommentDialog), //还是只能传一个 @Builder ,不能传 @Component
    this.commentsDialogParams
)
promptAction.openCustomDialog(this.commentsDialog, {
    alignment: DialogAlignment.BottomStart,
    offset: {
        dx: 0,
        dy: 16
    }
});

针对HarmonyOS 鸿蒙Next 自定义弹窗内部含有textInput时,键盘与dialog之间存在间隙的问题,这通常是由于弹窗布局与软键盘弹出时的界面调整未正确处理所致。

在HarmonyOS中,当textInput获得焦点并触发软键盘弹出时,系统可能会调整界面布局以适应键盘的显示。如果自定义弹窗的布局没有正确设置或调整,就可能出现键盘与弹窗之间的间隙。

解决方法可能涉及调整弹窗的布局参数,确保在键盘弹出时弹窗能够适当地调整其位置或大小。你可以检查以下几点:

  1. 弹窗布局:确保弹窗的布局文件(XML或代码定义)中,对textInput及其父容器的布局参数进行了适当设置,以便在键盘弹出时能够正确调整。

  2. 窗口软输入模式:在弹窗的创建或显示代码中,检查并设置合适的窗口软输入模式,这可能会影响弹窗在键盘弹出时的行为。

  3. 监听键盘事件:可以通过监听键盘的显示和隐藏事件,动态调整弹窗的布局或位置,以消除间隙。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部