Вы можете поместить этот код в утилиты, чтобы открыть клавиатуру.
/**
* Method to show keyboard
*
* @param context Context of the calling activity
*/
public static void showKeyboard(Context context) {
try {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(((Activity) context).getCurrentFocus(), InputMethodManager.SHOW_IMPLICIT);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Method to show keyboard
*
* @param context Context of the calling activity
* @param editText Edittext which will receive focus
*/
public static void showKeyboard(Context context, EditText editText) {
showKeyboard(context);
try {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_FORCED);
imm.showSoftInput(((Activity) context).getCurrentFocus(), InputMethodManager.SHOW_FORCED);
} catch (Exception e) {
e.printStackTrace();
}
}
Также, если вы хотите скрыть клавиатуру, вы можете использовать этот код:
/**
* Method to hide keyboard
*
* @param mContext Context of the calling class
*/
public static void hideKeyboard(Context mContext) {
try {
InputMethodManager inputManager = (InputMethodManager) mContext
.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(((Activity) mContext).getCurrentFocus().getWindowToken(), 0);
} catch (Exception ignored) {
ignored.printStackTrace();
}
}
Используйте этокод в вашем менифесте:
android:windowSoftInputMode="adjustPan"