查看: 72|回复: 0

【输入法】输入法弹窗无法显示问题

[复制链接]

1

主题

3

回帖

13

积分

新手上路

积分
13
发表于 2025-3-30 12:42:54 | 显示全部楼层 |阅读模式
背景:针对切换输入法弹窗不显示问题,单独开贴。
解决方案:
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,
  1.      let dialogRect: DialogRect = {
  2.        left: 50,
  3.        top: 900,
  4.        width: 300,
  5.        height: 300
  6.     }
复制代码
对部分横屏或小屏设备来说很不友好,会导致弹窗显示在屏幕之外,导致开发者以为无法显示窗口,实际已经在屏幕之外显示了。
4.动态调整输入法弹窗位置
可使用display来查询显示区域的宽高,进而动态显示输入法窗口的位置。
以下提供部分可选择的简易代码来显示该弹窗位置。
  1. import display from "@ohos.display"
  2. let dis = display.getDefaultDisplaySync();
  3.      let dialogRect: DialogRect = {
  4.        left: dis.width / 4,
  5.        top: dis.height / 4,
  6.        width: dis.width / 2,
  7.        height: dis.height / 2
  8.     }
复制代码
仅供 遇到输入法弹窗无法显示问题的小伙伴们尝试使用 ,包有效的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表