景观键盘遮挡了视图

时间:2012-04-14 17:50:48

标签: android android-softkeyboard landscape-portrait

我的活动中有一个OpenGL SurfaceView,我正在使用键盘输入一些文本(通过线路发送)。没有EditText,所以我强制键盘显示使用:

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

活动定义了属性android:windowSoftInputMode="adjustResize",这在纵向模式下效果很好,当显示键盘时,布局正在调整大小(因此也是表面视图)。但它并没有在横向模式下发生,这使得surfaceview的一部分(实际上,大部分都是模糊的)变得模糊不清。 surfaceview实现了平移和缩放,所以如果我至少可以知道显示的键盘大小并相应地重新定位surfaceview,那就太棒了。

有没有办法让软键盘在横向上表现得像在纵向模式下一样(意味着它会调整我的布局)?如果没有,有没有办法获得键盘的高度(显然是全屏)?

1 个答案:

答案 0 :(得分: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;
}