1

我遇到的问题是,当系统屏幕锁定设置为无时,关闭屏幕然后打开屏幕后,横向/全屏模式下的 EditText 变空。键盘保持活动状态,但似乎没有焦点,屏幕上也没有显示任何文本更新。如果我点击完成按钮或旋转到纵向,则删除全屏编辑器,我可以在正常的 EditText 视图中看到先前输入的文本。

我在模拟器和设备上都在 JB 上重现了这个。EditText 有一个 android:id,我在各种 EditText 和 AutoCompleteTextView 配置中发现了这个问题,但只有当系统屏幕锁定设置设置为无时。当它设置为幻灯片或图案时一切正常,所以我怀疑缺少屏幕锁定是这个问题的根源。

我在日历中发现了同样的问题,但在消息传递中没有。在横向/全屏模式下编辑 SMS 消息然后关闭/打开屏幕时,消息起初看起来是空的,但一秒钟后又返回。我查看了下面的源代码,但我没有看到 onResume() 中似乎解决了这个问题的任何特别之处。

https://github.com/android/platform_packages_apps_mms/blob/master/src/com/android/mms/ui/ComposeMessageActivity.java

有谁知道如何正确解决此问题,以便当屏幕锁定为无时,您可以在横向/全屏模式下编辑文本,关闭屏幕然后重新打开,文本会在您离开时显示?

4

1 回答 1

0

作为一个(希望是)临时修复,我在其中包含了以下行onResume(),它似乎可以解决问题。最初我试图只在 IME 时运行它isFullscreenMode(),但这会返回 false in onResume()(在返回 true in 之后onPause())。我猜这是问题根源的一部分。当系统屏幕锁定为无且屏幕打开时,IME 并不知道它实际上处于全屏模式。

View view = getCurrentFocus();

if (view != null) {
    ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
            .restartInput(view);
}
于 2012-10-31T22:11:26.203 回答