Почему не исчезает виртуальная клавиатура? - PullRequest
6 голосов
/ 29 декабря 2010

У меня довольно простой экран с парой виджетов EditText и кнопкой.В эмуляторе, когда я нажимаю на виджет EditText, появляется виртуальная клавиатура.Тем не менее, я не могу избавиться от этого.Нажатие на пустое место на экране не заставит его уйти.Только щелкнув виртуальную клавишу «Возврат» или аппаратную кнопку «Назад», он исчезает.

У меня нет под рукой настоящего телефона Android, так что это только эмулятор или он будет таким на реальном устройстве.Если это так, что я могу сделать, чтобы виртуальная клавиатура исчезла, когда я нажимаю в другом месте формы?

Ответы [ 6 ]

3 голосов
/ 29 декабря 2010

AngryHacker, я хотел бы отослать вас к этому посту как закрыть / скрыть программную клавиатуру Android .

Надеюсь, это поможет.

3 голосов
/ 29 декабря 2010

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

2 голосов
/ 03 марта 2016

Я пережил эту проблему и решил ее. Эта проблема составляет около InputMethodManager.SHOW_FORCED значение в моем проекте. Когда я открываю клавиатуру с помощью SHOW_FORCED, то при попытке закрыть клавиатуру клавиатура не закрывалась.

Например:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_FORCED);

Если вы используете вышеуказанный способ, чтобы открыть клавиатуру, вы можете попробовать изменить значение SHOW_FORCED на SHOW_IMPLICIT значение

Например:

activity.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(view, InputMethodManager.SHOW_IMPLICIT);
2 голосов
/ 26 июля 2011

Я думаю, что в эмуляторе вы можете нажать Escape, чтобы скрыть клавиатуру. На реальном устройстве есть кнопка скрытия на клавиатуре, или вы можете нажать в другом месте пользовательского интерфейса. Вот так все и работает на моем HTC Desire S.

0 голосов
/ 10 сентября 2014

Это можно сделать, выполнив следующие действия:

  1. Сделайте родительский вид (представление содержимого вашей деятельности) интерактивным и фокусируемым, добавив следующие атрибуты

        android:clickable="true" 
        android:focusableInTouchMode="true" 
    
  2. Реализация метода hideKeyboard ()

        public void hideKeyboard(View view) {
            InputMethodManager inputMethodManager =(InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
        }
    
  3. Наконец, установите onFocusChangeListener вашего текста редактирования.

        edittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) {
                    hideKeyboard(v);
                }
            }
        });
    

Источник

0 голосов
/ 18 февраля 2013

У меня Galaxy S2 под управлением Android 2.3.6.
У меня были проблемы с клавиатурой, не выходя из пути после ввода необходимого текста при входе на веб-сайты. Я обнаружил, что нажатие на кнопку возврата оборудования убирает виртуальную клавиатуру. Но иногда он возвращает веб-браузер на одну страницу назад. Что разочаровывает, потому что тогда я должен повторно ввести информацию для входа на любой веб-сайт, к которому я подключаюсь Надеюсь, Android 4.x решил некоторые из этих проблем.

...