Kla*_*nDK 4 android android-softkeyboard android-input-method
我正在寻找这个问题的答案,但是从用户的角度来看.也就是说,如果平板电脑显示正常的应用程序UI,即使键盘在横向模式下可见,是什么导致手机不这样做?我讨厌这个"全屏"编辑框,而且更愿意看到该应用程序的正常用户界面的剩余一半(尽管可能会有更少的可见;对于今天的巨大手机,仍有"充足"的屏幕空间可用).
例如,是否有一个配置文件,其中一个可能调整一个设置(即让设备相信它的屏幕更大,或类似的效果)?我完全意识到这可能需要root,我对此很好.要清楚,我知道改变所有"冒犯"的应用程序既不可行也不可取.
我意识到这并不是一个严格意义上的编程问题,但是将短语组合在一起会非常困难,甚至可以得到一些合理的搜索结果.为了记录,我使用的是Nexus 4,但问题基本上与设备和版本无关.
根据文件:
IME_FLAG_NO_EXTRACT_UI:对于可能是全屏的输入方法,通常在横向模式下,这允许它们更小并且让部分应用程序显示在后面.虽然可能对用户提供的应用程序访问受限,但它可以使(大多数)全屏IME的体验不那么刺耳.请注意,指定此标志时,可能无法将IME设置为能够显示文本,因此仅应在不需要此情况的情况下使用它.
因为手机具有较小的屏幕空间,所以可能使用户更难以看到整个UI并且能够正确地操作它,尤其是如果你有一些"较高"的UI元素可能不适合横向模式的屏幕.
更新:从操作系统级别的角度来看,解决方案在于(至少在ICS中)android/inputmethodservice/InputMethodService.java:2107:
/**
* Called when the fullscreen-mode extracting editor info has changed,
* to determine whether the extracting (extract text and candidates) portion
* of the UI should be shown. The standard implementation hides or shows
* the extract area depending on whether it makes sense for the
* current editor. In particular, a {@link InputType#TYPE_NULL}
* input type or {@link EditorInfo#IME_FLAG_NO_EXTRACT_UI} flag will
* turn off the extract area since there is no text to be shown.
*/
public void onUpdateExtractingVisibility(EditorInfo ei) {
if (ei.inputType == InputType.TYPE_NULL ||
(ei.imeOptions&EditorInfo.IME_FLAG_NO_EXTRACT_UI) != 0) {
// No reason to show extract UI!
setExtractViewShown(false);
return;
}
setExtractViewShown(true);
}
Run Code Online (Sandbox Code Playgroud)
要删除此功能,您必须覆盖onUpdateExtractingVisibility(EditorInfo)并setExtractViewShown(false)在不调用的情况下调用它super.
| 归档时间: |
|
| 查看次数: |
3649 次 |
| 最近记录: |