我们在做app的时候总是会遇到软键盘弹起引起的各种不适,这里记录几种情况以便以后方便查阅:
1、软键盘弹出时布局被压缩,是因为我们在布局中使用了比重,如果不想被压缩,则在清单文件当前注册的活动中配置:
android: windowSoftInputMode = "adjustPan"
2、如果想用户看到自己输入的内容,则在清单文件中这样配置:
android:windowSoftInputMode = "adjustResize"
//还有很多属性,用的不多!
3、在使用侧滑(还有其他很多请况)的时候,点击edittext的时候弹出软键盘,点击外面让侧滑消失,这时候软键盘并没有被收回,这时候就需要我们主动关闭它,在根布局中添加事件拦截:
drawer.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
return imm.hideSoftInputFromWindow(MyOrder.this.getCurrentFocus().getWindowToken(), 0);
}
});
4、还有强制关闭官键盘和强制打开软键盘的方法:
强制关闭软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(MyOrder.this.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);
强制打开软键盘
InputMethodManager imm = (InputMethodManager) this
.getSystemService(this.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);