首页 > 解决方案 > 如何获取原生安卓软键盘的行数?

问题描述

我正在使用 Android 中的输入法服务构建自定义键盘,我希望它的高度尽可能与本机键盘一样高,但没有数字行和任何其他行(例如预测行或其他内容)。

我通过使用设置键盘的高度

    getInputMethodWindowRecommendedHeight() 

但是,当通过设置将数字行插入本机键盘时,此方法返回更高的值。我希望高度保持没有数字行。有没有办法确定本机键盘中的行数?

标签: androidandroid-softkeyboardandroid-input-methodandroid-virtual-keyboard

解决方案


停止。你想错了。Android 上没有本机键盘。每个 OEM 都会选择自己的键盘。除了您的以外,可能根本没有安装键盘。没有办法知道键盘的高度是多少,并且键盘的高度可能会在使用键盘的过程中发生变化(您可以从键盘应用程序中轻松更改键盘的插图。常见的用例正在展示/隐藏建议栏或可移动键盘)。事实上,在某些用例中,键盘与操作系统的高度有关并且只使用它的一部分(例如:可移动键盘经常要求全屏,然后声明一个仅覆盖其实际区域的可触摸插图)。

此外,即使安装了 AOSP 默认键盘,也没有特殊的指定或权限。没有“本机”键盘,只有默认键盘。这显然可以有它想要的任何高度。如果用户选择最小的东西,它甚至可能非常小。

你想要的实际上是不可能的,也不会奏效。相反,创建您想要创建的键盘,并在 onComputeInsets 中正确报告您的身高。


推荐阅读