任何“谷歌键盘”悄悄话? API 19

问题描述 投票:3回答:1

我有一个看似奇怪的问题,我非常感谢任何可能有帮助的建议。

我试图通过测试各种屏幕外形来实现尽职调查,但是我在使用API​​级别19的模拟Nexus 4上的默认(AKA Google)键盘时遇到了问题.AFAIK,根据在线规格Nexus 4与API 17一起发布,所以在我看来19应该能够处理Nexus 4中的任何硬件。

我正在使用显示文档的应用程序,如果用户希望,则允许在查看文档的同时输入有关文档的注释。默认情况下,大部分屏幕都是由文档视图拍摄的。但是当按下按钮以允许输入关于文档的注释时,将重新排列视图以允许软键盘与EditText视图一起显示以接受注释,并且仍然允许尽可能多的文档尽可能方便地查看和滚动。

在默认的“肖像”方向上,我能够在我需要的时候偷偷摸摸地解决太多问题;但奇怪的是在“风景”方向,无论我如何限制它,屏幕键盘本身占据屏幕“高度”的一半,另一半显示一个单独的输入区域,几行高; “DONE”按钮分别显示在靠近右侧屏幕边缘的输入区域高度的一半处。

为了使软键盘和任何相关的输入区域尽可能小/简单,我为EditText提供了以下属性:

android:inputType="text|textNoSuggestions|textShortMessage"
android:singleLine="true"

这是我的styles.xml文件中的主题:

<item name="android:windowSoftInputMode">stateUnchanged</item>

我甚至考虑过用XML等构建自定义键盘结构。但我的理解是,Android不允许将键盘定义“私下”用于一个应用程序;相反,它需要用户批准自定义键盘描述作为用户的标准键盘,或者根本不允许使用自定义键盘。

我错过了什么吗?我没有为我的目的正确使用属性吗?为了获得理想的效果,我还需要做些什么吗?实际的Nexus 4是否像我描述的那样表现?或者仿真有问题吗?

我会非常感谢任何有用的想法。

希望一些图像有助于说明问题。

默认文档查看模式:

用户按下“MAKE NOTES”按钮后,记下记录模式。这是在用户按下EditText视图(显示提示字符串“要输入注释,按此处”)之前:

当按下“MAKE NOTES”按钮时,我重新安排了事情。在我看来,控件大致适合左上象限,文档视图大致位于右上象限中明显较小的可滚动区域;我要求显示键盘,它适合在这些东西下方的屏幕上。由于键盘确实适合,我不会期望“提取”视图;特别是当我得到这些模拟器屏幕快照时,我将EditText视图限制为一个文本行,所以我希望输入在EditView中就位,就像在“纵向”方向一样...

相反,当用户在EditText视图中按下时:

android android-softkeyboard nexus-4
1个回答
0
投票

无法改变键盘的高度。键盘本身设置在InputMethodService类的onComputeInsets中,与onCreateInputView中返回的视图的高度相结合。

您实际上可以为您的应用创建一个键盘,但您的用户会讨厌您。你不打算写其他公司没有花费多年的时间来写Swype功能,或者好的自动更正,或其他任何东西。

您似乎要描述的是一种称为提取视图的全屏编辑情境,其中键盘以横向模式接管整个屏幕。这是手机的标准Android体验,因为屏幕太少,无法让应用程序使用。这就是你所看到的,还是别的什么?如果是提取模式,请尝试将android:imeOptions="flagNoExtractUi"添加到textview

© www.soinside.com 2019 - 2024. All rights reserved.