Android 横向键盘遮挡视图

Android 横向键盘遮挡视图,android,android-softkeyboard,landscape-portrait,Android,Android Softkeyboard,Landscape Portrait,我的活动中有一个OpenGL SurfaceView,我正在使用键盘输入一些文本(通过网络发送)。没有EditText,因此我使用以下命令强制显示键盘: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager

我的活动中有一个OpenGL SurfaceView,我正在使用键盘输入一些文本(通过网络发送)。没有EditText,因此我使用以下命令强制显示键盘:

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
该活动定义了属性android:WindowsOfInputMode=“adjustResize”,这在纵向模式下非常有效,在纵向模式下,当显示键盘时,布局将被调整大小(因此也会调整surfaceview)。但这并不是在景观模式下发生的,这使得部分surfaceview(实际上,大部分)变得模糊。surfaceview实现了平移和缩放,因此如果我至少能知道显示的键盘大小并相应地重新定位surfaceview,那就太好了


有没有办法使软键盘在横向模式下的行为与在纵向模式下的行为相同(这意味着它将调整我的布局)?如果没有,有没有办法获得键盘的高度(显然是全屏的)?

android开发者的帮助下,我通过使用视图上的覆盖(
onCreateInputConnection
)解决了这个问题。看


在android开发者的帮助下,我通过在视图上使用覆盖(
onCreateInputConnection
)解决了这个问题。看

@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
  InputConnection connection = super.onCreateInputConnection(outAttrs);
  outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_FULLSCREEN;
  return connection;
}