1

アクティビティにOpenGLSurfaceViewがあり、キーボードを使用してテキストを入力しています(ネットワーク経由で送信します)。EditTextが存在しないため、次を使用してキーボードを強制的に表示しています。

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

アクティビティには属性が定義されてandroid:windowSoftInputMode="adjustResize"おり、これは、キーボードが表示されたときにレイアウトのサイズが変更される(したがってサーフェスビューも)ポートレートモードでうまく機能します。ただし、ランドスケープモードでは発生しないため、サーフェスビューの一部(実際にはほとんど)が不明瞭になります。サーフェスビューはパンとズームを実装しているので、少なくとも表示されているキーボードのサイズを把握し、それに応じてサーフェスビューを再配置できれば素晴らしいと思います。

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

4

1 に答える 1

1

android-developersnewsgorupの助けを借りて、ビューのオーバーライドを使用することでこの問題を解決することができました( onCreateInputConnection)。元のスレッドを参照してください。

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
  InputConnection connection = super.onCreateInputConnection(outAttrs);
  outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN;
  return connection;
}
于 2012-06-09T12:49:32.920 に答える