我的活动中有一个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,那就太棒了。
有没有办法让软键盘在横向上表现得像在纵向模式下一样(意味着它会调整我的布局)?如果没有,有没有办法获得键盘的高度(显然是全屏)?
答案 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;
}