1

私のアプリケーションには、クリックすると EditText ウィジェットが表示され、フォーカスが置かれ、キーボードが表示される検索ボタンがあります。これを行うときは、次のコードを呼び出します。

queryTextView.requestFocus();
    InputMethodManager imm = Utilities.getInputMethodManagerFromContext(getContext());
    imm.showSoftInput(queryTextView, InputMethodManager.SHOW_FORCED);

これがランドスケープで期待どおりに表示されるのは初めてです。

実施例

テキストを入力して検索をクリックすると、EditText が非表示になり、キーボードが強制的に閉じられます。私はこのコードを使用してこれを行います:

InputMethodManager imm = Utilities.getInputMethodManagerFromContext(getContext());      
    imm.hideSoftInputFromWindow(getWindowToken(), 0);

ボタンをもう一度押して EdidText を表示し、キーボードを再度表示すると、画面は次のようになります (標準の Galaxy Nexus キーボードを使用している場合のみ)。

壊れた風景

SwiftKey などの別のキーボードを使用すると、この動作が得られません。このソフト キーボードが画面いっぱいに表示されない理由を調べるには、どのようなものを探すことができますか?

4

2 に答える 2

1

編集: もう一度考えてみると、スクリーンショットから、キーボードが全画面表示しようとしているように見えるので、onEvaluateFullscreenMode は true を返す必要があります...おそらく問題はどこかにありますonCreateExtractTextView

あなたが探しているものではありませんが、他のすべてが失敗した場合は、おそらく AOSP キーボード ソースを取得し、それを調べて、 onEvaluateFullscreenModeが返されているかどうか、またはまったく呼び出されていないかどうかを判断できます。

于 2012-05-07T19:59:31.407 に答える
0

その機能を実現するには、android:imeOptions="flagNoFullscreen" を使用します。

于 2015-09-09T14:32:21.267 に答える