• Lv0
    粉丝0

积分27 / 贡献0

提问0答案被采纳0文章2

[经验分享] 【输入法】输入法弹窗无法显示问题 原创

onefan 显示全部楼层 发表于 4 天前

背景:针对切换输入法弹窗不显示问题,单独开贴。

解决方案:

1.确认当前系统版本及包名

因为在4.0R上 输入法弹窗的包名是cn.openharmony.inputmethodchoosedialog,在4.1R及5.x R版本上,输入法弹窗包名改为了com.ohos.inputmethodchoosedialog。在对应配置自启动及预安装的地方需要一一对应。

2.确认当前默认输入法

默认输入法属性为:persist.sys.default_ime

代码配置位置在inputmethod_imf仓,源码路径为base/inputmethod/imf/etc/para/inputmethod.para中

系统默认为:persist.sys.default_ime=com.example.kikakeyboard/ServiceExtAbility

3.确认输入法弹窗窗口位置

开发者手机源码中该弹窗位置默认为上边距900,

     let dialogRect: DialogRect = {
       left: 50,
       top: 900,
       width: 300,
       height: 300

    }

对部分横屏或小屏设备来说很不友好,会导致弹窗显示在屏幕之外,导致开发者以为无法显示窗口,实际已经在屏幕之外显示了。

4.动态调整输入法弹窗位置

可使用display来查询显示区域的宽高,进而动态显示输入法窗口的位置。

以下提供部分可选择的简易代码来显示该弹窗位置。

import display from "@ohos.display"

let dis = display.getDefaultDisplaySync();

     let dialogRect: DialogRect = {
       left: dis.width / 4,
       top: dis.height / 4,
       width: dis.width / 2,
       height: dis.height / 2

    }

仅供 遇到输入法弹窗无法显示问题的小伙伴们尝试使用 ,包有效的。

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部