2012-05-07 3 views
1

私のアプリケーションでは、クリックするとEditTextウィジェットが表示され、フォーカスを合わせてキーボードを表示する検索ボタンがあります。私は風景の中にそれを期待するようGalaxy Nexus 'テキストを全画面で一貫して編集しない

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

この最初の時間は示しています:私はこれを行うと、私はこのコードを呼び出す

Working example

私は、テキストを入力し、検索にヒットしたら、私は非表示になります私のEditTextを押して、キーボードを強制的に閉じます。私はこのコードを使用してください:

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

私はEdidTextを見えるようにし、もう一度キーボードを表示するにはもう一度私のボタンをヒットした場合、私の画面はこのようになります(株式ギャラクシーネクサスのキーボードを使用する場合のみ):

Broken landscape

などSwiftKeyとして、別のキーボードを使用して、私はこの動作を得ることはありません。このソフトキーボードが画面を完全に満たしていない理由を調べるために、どのようなことを探すことができますか?

答えて

1

EDIT:キーボードはフルスクリーンを取るしようとしているので、onEvaluateFullscreenModeが真を返すべきであるように考え直しに、あなたのスクリーンショットから、それが見えます...おそらく問題はonCreateExtractTextView

のどこかではありません何を探していますが、他のすべてが失敗した場合は、AOSPのキーボードソースを取得して、それを通り抜けてonEvaluateFullscreenModeが戻ってきたかどうか、あるいはまったく呼び出されていないかどうかを調べることができます。

+0

レスポンスサムに感謝します。残念なことに、これらのメソッドのどちらも呼び出されません。私はこれらの方法の両方にブレークポイントを設定し、キーボードを呼び出すときにどちらもヒットしません。これは、AOSPソースのInputMethodServiceクラスにありました。それが使用できる別の実装がありますか?私はAOSPの情報源を通して他のマッチを捜していなかった。 –

+0

私はあなた自身がキーボード自体のコードになりたいと思っています。私はもっ​​と掘り下げてLatinime.javaを見つけました(私は実行中のプロセスを見て追跡しました。com.google.android.inputmethod.latinパッケージが私を導いてくれました)は、キーボードのコードが実際に存在する場所です。 Android SDKによってダウンロードされたソースコードが付属していません。残念ながら、私が話していたオーバーライドのいずれも見ることができませんでしたが、onStartInputViewは見る場所になる可能性があります。 http://bit.ly/JQRBrk –

+1

良い古いdevの設定は、常に問題を引き起こします –

0

この機能を実現するには、android:imeOptions = "flagNoFullscreen"を使用してください。

関連する問題