在我的应用程序中,我显示/隐藏键盘以允许用户操作自定义小部件。没有EditText
重点。
我遇到的问题是我希望布局在键盘显示时调整大小。这通常通过添加android:windowSoftInputMode="adjustResize"
到清单中的活动标签来完成。当设备(当前运行 2.2 的 7 英寸 Galaxy Tab)处于纵向模式时,这确实有效,但当旋转到横向时,布局不会调整大小并且键盘隐藏了一半的屏幕。
现在,我注意到如果改为使用具有 的 EditView android:imeOptions="flagNoExtractUi"
,则布局会适当地调整大小。有没有办法在通过窗口令牌显示的键盘上实现相同的效果?
向屏幕添加隐藏的 EditView 并不理想,因为它会极大地改变实现。
作为参考,这是我用来在自定义小部件中显示键盘的代码。
mInputMethod = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
mInputMethod.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
requestFocus();
setOnKeyListener(this);
并隐藏。
mInputMethod.hideSoftInputFromWindow(getWindowToken(), 0);
setOnKeyListener(null);