Как запретить отображение виртуальной клавиатуры в моем действии?

Я пишу игру для Android, которая работает в полноэкранном ландшафтном режиме и имеет кнопки, расположенные в нижнем левом и нижнем правом углу окна. Проблема в том, что что одна из этих кнопок (на многих телефонах) находится рядом с кнопкой «Меню», поэтому игрок может случайно вместо этого нажать «Меню».

Если нажать на короткое время, я просто приостанавливаю игру и показываю внутриигровое меню. Нет проблема там.

Но если кнопку удерживать дольше, Android открывает программную клавиатуру в нижней половине экрана. Поскольку он мешает и совершенно бесполезен в этом действии, я хотел бы отключить его.

Я пробовал следующие подходы.

Через InputMethodManager

От: Скрыть программную клавиатуру при действии без любые операции с клавиатурой

Поскольку у меня есть только одно представление ( GLSurfaceView ), я пробовал это в моем Activity.onCreate () :

InputMethodManager imm = ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE));
imm.hideSoftInputFromInputMethod(glSurfaceView.getApplicationWindowToken(), 0);

Не работает: мягкий Клавиатура по-прежнему появляется в меню при длительном нажатии.

Через файл AndroidManifest.xml

От: Как предотвратить появление мягкой клавиатуры Android во всем моем приложении

Я добавил это в свой манифест :


Тоже ничего не делает.

Итак ... есть ли вообще способ? Как?

6
задан Community 23 May 2017 в 12:23
поделиться