Необходимо убрать фокус с текста редактирования, когда пользователь скрывает виртуальную клавиатуру

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

Есть ли способ поймать событие скрытия клавиатуры?


person slex    schedule 10.04.2013    source источник


Ответы (1)


Вы можете использовать это, чтобы поймать событие скрытия клавиатуры

  @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        final int proposedheight = MeasureSpec.getSize(heightMeasureSpec);
        final int actualHeight = getHeight();

        if (actualHeight > proposedheight){
            // Keyboard is shown
        } else {
            // Keyboard is hidden
        }

        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

Также вы можете вызвать requestFocus() в другом представлении, чтобы убрать фокус с вашего EditText.

person Arun C    schedule 10.04.2013
comment
это не совсем соответствует тому, как сделаны мои макеты, на данный момент корень - это просто линейный макет в xml - person slex; 10.04.2013