在android开发中,经常会用到软键盘,这里先纪录下2种用法。
- 1、代码手动让其弹起
- 2、监听软键盘
手动让其弹起
需要注意的是,在此之前必须让edittext获取焦点,不然也是无效的
mEtComment.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEtComment, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
监听软键盘
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//比较Activity根布局与当前布局的大小
int heightDiff = activityRootView.getRootView().getHeight() - activityRootView.getHeight();
if (heightDiff > 100) {
//大小超过100时,一般为显示虚拟键盘事件
Log.i(tag, "has 焦点");
} else {
//大小小于100时,为不显示虚拟键盘或虚拟键盘隐藏
Log.i(tag, "lost 焦点");
}
}
});
其中,activityRootView是对应的activity或者fragment的最外面的view。
先写这么多,有时间再来完善。