Android 任何;谷歌键盘“;耳语者?API19

Android 任何;谷歌键盘“;耳语者?API19,android,android-softkeyboard,nexus-4,Android,Android Softkeyboard,Nexus 4,我有一个奇怪的问题,我非常感谢任何可能有帮助的建议 我正试图通过测试各种屏幕形式因素来实现尽职调查,但在使用API级别19的模拟Nexus4上的默认(也称为Google)键盘时,我遇到了一个问题。好吧,根据在线规范,Nexus4是用API 17发布的,所以在我看来,19应该能够处理Nexus4中的任何硬件 我正在使用一个显示文档的应用程序,如果用户愿意,可以在查看文档的同时输入有关文档的注释。默认情况下,大部分屏幕由文档视图占据。但是,当按下按钮以允许输入有关文档的注释时,视图会重新排列,以允许

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

我正试图通过测试各种屏幕形式因素来实现尽职调查,但在使用API级别19的模拟Nexus4上的默认(也称为Google)键盘时,我遇到了一个问题。好吧,根据在线规范,Nexus4是用API 17发布的,所以在我看来,19应该能够处理Nexus4中的任何硬件

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

在默认的“纵向”方向中,我能够在没有太多问题的情况下插入我需要的内容;但奇怪的是,在“横向”方向上,无论我如何约束它,屏幕上的键盘本身占据了屏幕“高度”的一半,而另一半则有一个单独的输入区域显示,几行高;“完成”按钮在屏幕右边缘附近输入区域高度的一半左右单独显示

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

android:inputType="text|textNoSuggestions|textShortMessage"
android:singleLine="true"
这是my styles.xml文件中的主题:

<item name="android:windowSoftInputMode">stateUnchanged</item>
状态保持不变
我甚至考虑过用XML构建自定义键盘结构,等等。。但我的理解是,Android不会允许一个键盘定义“私自”用于一个应用程序;相反,它需要用户批准自定义键盘描述作为用户的标准键盘,或者根本不允许使用自定义键盘

我错过什么了吗?我是否没有正确地使用属性来达到我的目的?为了达到预期效果,我还需要做些什么吗?实际的Nexus4是否如我所描述的那样运行?或者仿真有问题吗

如果有任何有用的想法,我将不胜感激

希望一些图片能帮助说明这个问题

默认文档查看模式:

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

当按下“做笔记”按钮时,我会重新安排事情。在我看来,这些控件大致位于左上象限, 文档视图位于明显较小的可滚动区域,大致位于右上象限;我要求显示键盘,并将其放在这些东西下面的屏幕上。由于键盘确实合适,我没想到会出现“提取”视图;特别是当我得到这些模拟器屏幕快照时,我已经将EditText视图限制为一个文本行,因此我希望输入在 EditView,就像在“纵向”方向中一样

相反,当用户在EditText视图中按下时:
无法更改键盘的高度。键盘本身在InputMethodService类的OnComputerInset中设置,并与onCreateInputView中返回的视图高度相结合

实际上,你可以为你的应用程序创建一个键盘,但你的用户会讨厌你。如果不花上其他公司多年的时间,你就不可能编写Swype功能、良好的自动更正或其他任何东西

您所描述的似乎是一种全屏编辑情况,称为“提取视图”,其中键盘在横向模式下占据全屏。这是安卓手机的标准体验,因为屏幕太小,应用程序无法使用。这就是你看到的,还是别的什么?如果是提取模式,请尝试将
android:imeOptions=“flagNoExtractUi”
添加到
textview

我只想提供会影响使用高度的“提示”;当我添加“textNoSuggestions”时,键盘顶部的水平“行”被删除;键盘的高度较低。我不希望为自定义键盘编写可执行代码,只希望做一个XML键盘布局,并有标准逻辑支持它;在我为澄清我的问题而添加的图像中,如果我可以用DONE键替换emoticon键,我认为可能没有使用extract视图。android:imeOptions=“flagNoExtractUi”解决了这个问题;非常感谢你!!