在开发过程中,当activity中包含edittext控件时,它会自动获取焦点,然后弹出软键盘,但我们有时不希望出现这种情况,所以只要不让edittext获取焦点即可。
1、在布局中设置
android:focusable="false"
android:focusableInTouchMode="false"
也可以在edittext所在的父布局中进行拦截
2、在Manifest.xml文件中相应的Activity下设置
android:windowSoftInputMode="stateHidden"
3、在代码中设置
edit.setFocusable(false);
如果需求改为edittext自动弹出软键盘,那就把相应的false改为true即可
但是如果所在页面需要加载数据,可能会导致软键盘无法弹起,这是因为数据还未加载完全,此时只需要增加延迟弹出即可
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
InputMethodManager inputManager = (InputMethodManager) editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.showSoftInput(editText, 0);
}
}, 500);