软键盘打开
public static void openKeybord(EditText mEditText, Context mContext) {
InputMethodManager imm = (InputMethodManager) mContext
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
InputMethodManager.HIDE_IMPLICIT_ONLY);
}
软键盘关闭
public static void closeKeybord(EditText editText, Context context) {
InputMethodManager imm = (InputMethodManager) context
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
监听软键盘状态
public static boolean isSoftInputShow(Activity activity) {
if(activity.getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE){
return true;
}else {
return false;
}
}
解决表情和键盘切换时界面闪动
设置默认时的弹出方式
android:name="MainActivity"
android:windowSoftInputMode="adjustResize"/>
弹出表情时,设置软键盘弹出方式
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
mEmotionLayout.setVisibility(View.VISIBLE);
弹出键盘时,设置软键盘弹出方式
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
mEmotionLayout.setVisibility(View.GONE);