2012-10-31 183 views
1

我有一個問題,在關閉屏幕後,在橫屏/全屏模式下EditText變爲空時,然後系統屏幕鎖定設置爲None時出現問題。鍵盤保持活動狀態,但它看起來沒有焦點,並且屏幕上沒有文字更新顯示。如果點擊「完成」按鈕或旋轉爲縱向,則全屏編輯器將被刪除,並且我可以在正常的EditText視圖中看到以前輸入的文本。空的EditText打開屏幕和屏幕鎖定設置爲無

我在模擬器和設備上的JB上重現了這一點。 EditText有一個android:id,我發現這個問題有各種各樣的EditText和AutoCompleteTextView配置,但只有當系統屏幕鎖定設置被設置爲無。當它設置爲幻燈片或模式時,一切正常,所以我懷疑缺少屏幕鎖定是這個問題的根源。

我在日曆中發現了同樣的問題,但沒有發現消息。在橫屏/全屏模式下編輯短信,然後關閉/打開屏幕時,首先該信息顯示爲空,但一秒後返回。我回顧了下面的源代碼,但是我沒有在onResume()中看到任何特殊的東西,這似乎是解決了這個問題。

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

有誰知道如何正確地解決這個問題,這樣,當屏幕鎖定是無你可以編輯景觀/全屏模式下的文本,關閉屏幕,然後重新打開,並顯示文本就像你離開它一樣?

+0

是否意味着當您將設備縱向更改爲橫向時,它會刪除您的數據嗎? –

+0

不,方向更改正常。這是關於在全屏幕風景編輯器中,關閉屏幕然後打開,文本不再顯示在編輯器中。當系統屏幕鎖定設置爲無時,這只是一個問題。當它是任何其他值(例如Slider或Pattern)時,打開屏幕並解鎖後,文本將在編輯器中正確顯示。 – pushbit

回答

0

作爲一個(希望)臨時修復,我在onResume()中包含了以下行,它看起來有效。最初我試圖只在IME isFullscreenMode()上運行這個,但是在onResume()(在onPause()中返回true)返回false。我猜想這是問題根源的一部分。當系統屏幕鎖定爲無並且屏幕打開時,IME在實際上不知道它處於全屏模式。

View view = getCurrentFocus(); 

if (view != null) { 
    ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)) 
      .restartInput(view); 
}