HarmonyOS 鸿蒙Next 自定义弹窗与系统键盘不能同时显示

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

HarmonyOS 鸿蒙Next 自定义弹窗与系统键盘不能同时显示

通过getPromptAction().openCustomDialog打开的自定义弹窗,和textinput拉起的键盘不能同时显示

2 回复

规格上就是所有的弹窗都会规避软键盘(除了半模态),规格如此,是不能够修改的,使用半模态转场来实现更合适。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-sheet-transition-V5#

示例1 可以参考如下代码:

@Entry
@Component
struct Main4 {
    @State
    isShow: boolean = false;

    @Builder
    myBuilder() {
        return Column() {
            Button("关闭半模态").onClick(() => {
                this.isShow = false;
            });
            TextInput();
        }
        .expandSafeArea([SafeAreaType.SYSTEM, SafeAreaType.KEYBOARD], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
        .borderRadius(10)
        .width("100%");
    }

    build() {
        return Column() {
            Button('click me 打开半模态').onClick(() => {
                this.isShow = !this.isShow;
            });
        }
        .expandSafeArea([SafeAreaType.SYSTEM, SafeAreaType.KEYBOARD], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM])
        .bindSheet($this.isShow, this.myBuilder(), { height: 400 })
        .justifyContent(FlexAlign.End)
        .width('100%')
        .height('100%');
    }
}

更多关于HarmonyOS 鸿蒙Next 自定义弹窗与系统键盘不能同时显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对“HarmonyOS 鸿蒙Next 自定义弹窗与系统键盘不能同时显示”的问题,以下是专业回答:

在HarmonyOS鸿蒙Next系统中,若遇到自定义弹窗与系统键盘无法同时显示的问题,通常是由于弹窗的层级设置或显示区域与键盘冲突所致。系统键盘在弹出时,会占用部分屏幕空间,如果自定义弹窗的层级设置不当或位置与键盘重叠,就会导致两者无法共存。

解决方法可以尝试调整以下几个方面:

  1. 弹窗层级:确保自定义弹窗的层级高于其他UI元素,但避免与系统键盘的层级冲突。
  2. 弹窗位置:调整弹窗的显示位置,确保不与系统键盘的弹出位置重叠。
  3. 弹窗大小:适当调整弹窗的大小,避免占用过多屏幕空间,留出足够的区域给系统键盘。
  4. 键盘监听:在自定义弹窗中监听键盘的弹出与隐藏事件,根据键盘的状态动态调整弹窗的位置或大小。

如果以上方法无法解决问题,可能是由于系统本身的限制或bug导致。此时,建议直接联系HarmonyOS鸿蒙Next的官方客服,获取更专业的帮助。

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

回到顶部