我遇到一个问题,即在关闭屏幕后,横向/全屏模式下的EditText变为空,然后在系统屏幕锁定设置为无时打开。键盘保持活动状态,但它似乎没有焦点,并且屏幕上不显示任何文本更新。如果我点击完成按钮或旋转到纵向,则删除全屏编辑器,我可以在正常的EditText视图中看到以前输入的文本。
我在仿真器和设备上都在JB上重现了这一点。 EditText有一个android:id,我发现这个问题有各种EditText和AutoCompleteTextView配置,但只有在系统屏幕锁定设置设置为None时才会出现。当它设置为Slide或Pattern时,一切正常,所以我怀疑缺少屏幕锁定是这个问题的根源。
我在日历中发现了同样的问题,但在Messaging中没有。在横向/全屏模式下编辑SMS消息然后关闭/打开屏幕时,首先消息显示为空,但一秒后它会返回。我查看了下面的源代码,但是我没有看到onResume()中有任何特殊内容似乎解决了这个问题。
有没有人知道如何正确修复此问题,因此当屏幕锁定为无时,您可以在横向/全屏模式下编辑文本,关闭屏幕然后重新打开,文本会在您离开时显示?
答案 0 :(得分:0)
作为(希望)临时修复,我在onResume()
中包含了以下行,它似乎可以解决问题。最初我尝试仅在IME isFullscreenMode()
时运行此命令,但这在onResume()
中返回false(在onPause()
中返回true后)。我猜这是问题根源的一部分。当系统屏幕锁定为无并且屏幕打开时,IME实际上并不知道它处于全屏模式。
View view = getCurrentFocus();
if (view != null) {
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.restartInput(view);
}