Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
ILNAR_93
Android
239 / 238 / 50
Регистрация: 19.01.2013
Сообщений: 1,888
Записей в блоге: 3
1

Скрыть клавиатуру

19.11.2015, 13:18. Просмотров 2368. Ответов 7
Метки нет (Все метки)

Есть активность, в нем фрагменты.
В фрагменте 1 если открыть клавиатуру и перейти на другой фрагмент не закрывая клавиатуру вручную то во втором фрагменте клавиатура открыта..
Как это исправить?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2015, 13:18
Ответы с готовыми решениями:

скрыть клавиатуру
как сделать, чтобы после нажатия кнопки лупы (на клавиатуре) клавиатура...

Не могу скрыть клавиатуру
Использую вот такой код, чтобы скрыть клавиатуру: ...

Показать/скрыть экранную клавиатуру
Есть родительский Activity, в нем пользователь переключается между 4мя...

Заблокировать клавиатуру
Требуется заблокировать клавиатуру, чтобы она не появлялась, когда EditText...

Убрать клавиатуру
Есть Navigation Activity, там EditText. Проблема в том, что если напечатать в...

7
Pablito
2748 / 2182 / 738
Регистрация: 12.05.2014
Сообщений: 7,635
Завершенные тесты: 1
19.11.2015, 13:40 2
Так вариантов решения может быть несколько.
Например, если есть один-два поля ввода, которые достают клавиатуру то можно на них повесить OnFocusChangeListener и там прятать клавиатуру.
где-то в классе
Java
1
2
3
4
5
6
7
8
9
10
11
        final View.OnFocusChangeListener listener = new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (!hasFocus) hideKeyboard();
            }
        };
 
    private void hideKeyboard() {
        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0);
    }
и например есть один EditText
Java
1
2
        EditText ed = (EditText) findViewById(R.id.ed);
        ed.setOnFocusChangeListener(listener);
3
ILNAR_93
Android
239 / 238 / 50
Регистрация: 19.01.2013
Сообщений: 1,888
Записей в блоге: 3
19.11.2015, 14:10  [ТС] 3
Паблито, Спасибо, вроде как работает как надо)

Вопрос:
А если при клике в любую область дисплея проверять EditText это или нет и в случае если нет закрывать клавиатуру это слишком тупо?)
0
Pablito
2748 / 2182 / 738
Регистрация: 12.05.2014
Сообщений: 7,635
Завершенные тесты: 1
19.11.2015, 14:15 4
я когда-то делал так - на главный-корневой лаяут вешал onTouchListener, ловил им нажатие и когда случался ACTION_UP - прятал клавиатуру

а что бы этот слушатель пропускал дальше обработку касаний, в нем надо делать return false;
1
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
19.11.2015, 14:20 5
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
В фрагменте 1 если открыть клавиатуру и перейти на другой фрагмент не закрывая клавиатуру вручную то во втором фрагменте клавиатура открыта..
Как это исправить?
Ну если нужно исправить именно эту проблему - закрывать клавиатуру при смене фрагмента самый верный способ.
1
ILNAR_93
Android
239 / 238 / 50
Регистрация: 19.01.2013
Сообщений: 1,888
Записей в блоге: 3
19.11.2015, 15:03  [ТС] 6
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Ну если нужно исправить именно эту проблему
В идеале конечно при клике не в EditText надо закрывать
0
Pablito
2748 / 2182 / 738
Регистрация: 12.05.2014
Сообщений: 7,635
Завершенные тесты: 1
19.11.2015, 15:55 7
Лучший ответ Сообщение было отмечено ILNAR_93 как решение

Решение

вот, затестировал еще вариант
в активити переопределяем метод
Java
1
2
3
4
5
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() ==  MotionEvent.ACTION_DOWN) hideKeyboard();
        return super.dispatchTouchEvent(ev);
    }
profit, прячется даже при клике на гамбургер, дровер, тулбар и т.д.
4
ILNAR_93
Android
239 / 238 / 50
Регистрация: 19.01.2013
Сообщений: 1,888
Записей в блоге: 3
19.11.2015, 16:17  [ТС] 8
Паблито, спасибо! То что нужно!
0
19.11.2015, 16:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2015, 16:17

Спрятать клавиатуру в EditText
На экране есть несколько EditText. Нужно, чтобы при нажатии на определенный из...

Убрать экранную клавиатуру
Здравствуйте. На активити размещены различные элементы (кнопки, сикбары,...

Как убрать клавиатуру?
У меня есть DialogFragment, в нем поле для ввода. Если при клике на нем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru