Как заставить виртуальную клавиатуру отображать виртуальную клавиатуру в режиме ландшафта при запуске этой операции? и эта клавиатура не заполняет весь экран, поэтому я могу отображать некоторые виды над клавиатурой.
Думаю, вы говорите, чтобы показать мягкую клавиатуру в ландшафтном режиме на устройстве с жесткой клавиатурой, верно?
Мы можем сделать это, выполнив следующий код:
InputMethodManager input = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
if(input != null)
input.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
Пожалуйста, обратитесь к моему ответу по аналогичному вопросу здесь: Как открыть только половину клавиатуры в ландшафтном режиме?
Для решения.
Вам необходимо ввести атрибут android:imeOptions="flagNoExtractUi"
в ваш xml для получения эффекта, который вы ищете.
Это единственная комбинация, которая сработала для меня:
private void hideKeyboard() {
InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
View view = this.getCurrentFocus();
if (view != null && imm != null) {
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
и показать это:
private void showKeyboard(View view){
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (imm != null) {
imm.showSoftInput(view, 0);
}
}
Я также добавил android:imeOptions="flagNoExtractUi"
к представлению в XML.