У меня есть любопытный случай все еще видимой мягкой клавиатуры. Простой поток. Деятельность без каких-либо редакторов, где скрыта мягкая клавиатура. Из манифеста:Все еще видимая мягкая клавиатура
<activity
android:name=".activities.MainActivity"
android:theme="@style/MainActivity"
android:windowSoftInputMode="stateAlwaysHidden" />
... а также проверяется код
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
В этой деятельности у меня есть фрагмент, который содержит WebView. Я добавил touchlistener к этому веб-просмотру, который отправляет ему «пробел».
protected View.OnTouchListener onTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_SPACE);
}
return false;
}
};
Он обрабатывает эффект начала/паузы, где у меня есть видео-контент vimeo этого веб-представления. Раньше я пытался общаться с видеоигром vimeo с помощью обработчика javascript, но это не работало. Отправка ключевого события - действительно простое решение и отлично работает на всех устройствах, кроме одного. На dell t01c при вызове touchlistener появляется программная клавиатура. Я могу скрыть его с простым
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
но губит захватывающий режим деятельности - бар показывает навигации и исчезает. Как заблокировать клавиатуру навсегда? У кого-нибудь была схожая проблема?
Вы прочитали вопрос до конца? Я написал, что это решение разрушает режим погружения. – Nihilus13