2012-04-14 11 views
1

私のアクティビティにOpenGL SurfaceViewがあり、テキストを入力するためにキーボードを使用しています(ワイヤで送信します)。そこにはのEditText存在ではありませんので、私は使用して表示されるキーボードを強制しています:ランドスケープキーボードが不明確に表示

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY); 

活動は属性android:windowSoftInputMode="adjustResize"を定義しており、これはポートレートモードで素晴らしい作品、キーボードが表示されている場合、レイアウトがリサイズされている場所(とそれゆえ、サーフェイスも同様です)。それは景観モードでは起こっていませんが、これはサーフェイスビュー(実際にはほとんどのもの)の一部を不明瞭にします。サーフェイスビューはパンとズームを実装しているので、少なくとも表示されているキーボードのサイズを知って、それに応じてサーフェイスビューの位置を変えることができれば素晴らしいでしょう。

ソフトキーボードは、ポートレートモードと同じようにランドスケープで動作させる方法があります(つまり、レイアウトのサイズが変更されることを意味します)。そうでない場合は、キーボードの高さを取得する方法はありますか(明らかに全画面表示)?

答えて

1

android-developers newsgorupの助けを借りて、私はビュー(onCreateInputConnection)のオーバーライドを使ってこの問題を解決することができました。 original threadを参照してください。

@Override 
public InputConnection onCreateInputConnection(EditorInfo outAttrs) { 
    InputConnection connection = super.onCreateInputConnection(outAttrs); 
    outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN; 
    return connection; 
} 
関連する問題