1

システムの画面ロックが [なし] に設定されているときに、画面をオフにしてからオンにした後、ランドスケープ/フル スクリーン モードの EditText が空になるという問題があります。キーボードはアクティブなままですが、フォーカスが合っていないように見え、画面にテキストの更新は表示されません。[完了] ボタンをタップするか、縦向きに回転すると、フル スクリーン エディターが削除され、以前に入力したテキストが通常の EditText ビューに表示されます。

エミュレータとデバイスの両方でJBでこれを再現しています。EditText には android:id があり、さまざまな EditText および AutoCompleteTextView 構成でこの問題が見つかりましたが、システムの画面ロック設定が [なし] に設定されている場合のみです。スライドまたはパターンに設定するとすべてが正常に機能するため、画面ロックがないことがこの問題の原因であると思われます.

カレンダーで同じ問題が見つかりましたが、メッセージングでは見つかりませんでした。横/全画面モードで SMS メッセージを編集し、画面をオフ/オンにすると、最初はメッセージが空に見えますが、1 秒後に元に戻ります。以下のソース コードを確認しましたが、onResume() にこの問題に対処しているように見える特別なものは見当たりませんでした。

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

これを適切に修正する方法を知っている人はいますか? 画面ロックが [なし] の場合、横/全画面モードでテキストを編集し、画面をオフにしてから再びオンにすると、テキストはそのまま表示されますか?

4

1 に答える 1

0

(できれば) 一時的な修正として、次の行を含めましたが、うまくonResume()いくようです。最初は IME の場合にのみこれを実行しようとしましたが、これは( で true を返した後)isFullscreenMode()で false を返します。これが問題の根源の一部であると思います。システムの [画面ロック] が [なし] で画面がオンになっている場合、IME は実際にフル スクリーン モードであることを認識しません。onResume()onPause()

View view = getCurrentFocus();

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