编程时经常会碰到这种情况,当页面中存在EditText等文本输入控件时会默认获取系统焦点,从而弹出软键盘,以下有几种解决方案
1、在清单中让默认隐藏软键盘 <activity android:name=".MyTabActivity" android:windowSoftInputMode="stateHidden" />
2、让父布局获得焦点,在父布局中添加android:focusable="true"
android:focusableInTouchMode="true"
除了不让系统默认弹出软键盘 还有时候需要手动弹出软件盘
如果输入法在窗口上已经显示,则隐藏,反之则显示
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
让软键盘显示
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.RESULT_HIDDEN);
让软键盘隐藏
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(templateElEditText.getWindowToken(), 0);
另外 设置布局可以被软件盘顶上去的方法
android:windowSoftInputMode="stateUnchanged|adjustPan"