android - 如何获取原生安卓软键盘的行数?
问题描述
我正在使用 Android 中的输入法服务构建自定义键盘,我希望它的高度尽可能与本机键盘一样高,但没有数字行和任何其他行(例如预测行或其他内容)。
我通过使用设置键盘的高度
getInputMethodWindowRecommendedHeight()
但是,当通过设置将数字行插入本机键盘时,此方法返回更高的值。我希望高度保持没有数字行。有没有办法确定本机键盘中的行数?
解决方案
停止。你想错了。Android 上没有本机键盘。每个 OEM 都会选择自己的键盘。除了您的以外,可能根本没有安装键盘。没有办法知道键盘的高度是多少,并且键盘的高度可能会在使用键盘的过程中发生变化(您可以从键盘应用程序中轻松更改键盘的插图。常见的用例正在展示/隐藏建议栏或可移动键盘)。事实上,在某些用例中,键盘与操作系统的高度有关并且只使用它的一部分(例如:可移动键盘经常要求全屏,然后声明一个仅覆盖其实际区域的可触摸插图)。
此外,即使安装了 AOSP 默认键盘,也没有特殊的指定或权限。没有“本机”键盘,只有默认键盘。这显然可以有它想要的任何高度。如果用户选择最小的东西,它甚至可能非常小。
你想要的实际上是不可能的,也不会奏效。相反,创建您想要创建的键盘,并在 onComputeInsets 中正确报告您的身高。
推荐阅读
- openvpn - 在维护时将 VPN 用户路由到另一台服务器
- scala - 如果存在其他外部键,如何获取带有映射键的新列表?
- java - 在 internalStorage 中保存 mp3 文件的问题
- wordpress - 如何将序列化数据保存到 MySQL 的元字段中?
- jquery - 如何使用 jQuery 用表单的文本字段填充表格?
- javascript - Android App软键盘覆盖webview嵌入的网页textarea
- javascript - 显示限制列表并显示更多按钮
- firebase - 响应中带有 google 'Access-Control-Allow-Credentials' 标头的 Flutter Web firebase_auth 登录为 ''(空)
- database - Mongo DB $look up 方法用于数组而不是集合中的字段
- angular - MapBox Leaflet 路由机器无法识别