Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ILNAR_93
Android
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
#1

Скрыть клавиатуру - Программирование Android

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

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

скрыть клавиатуру - Программирование Android
как сделать, чтобы после нажатия кнопки лупы (на клавиатуре) клавиатура пряталась автоматически?

Не могу скрыть клавиатуру - Программирование Android
Использую вот такой код, чтобы скрыть клавиатуру: InputMethodManager imm = (InputMethodManager)...

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

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

Убрать клавиатуру - Программирование Android
Есть Navigation Activity, там EditText. Проблема в том, что если напечатать в нем что-то, а потом, не убирая клавиатуры, нажать на шторку,...

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

7
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,141
Завершенные тесты: 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
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
19.11.2015, 14:10  [ТС] #3
Паблито, Спасибо, вроде как работает как надо)

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

а что бы этот слушатель пропускал дальше обработку касаний, в нем надо делать return false;
1
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,663
Завершенные тесты: 1
19.11.2015, 14:20 #5
Цитата Сообщение от ILNAR_93 Посмотреть сообщение
В фрагменте 1 если открыть клавиатуру и перейти на другой фрагмент не закрывая клавиатуру вручную то во втором фрагменте клавиатура открыта..
Как это исправить?
Ну если нужно исправить именно эту проблему - закрывать клавиатуру при смене фрагмента самый верный способ.
1
ILNAR_93
Android
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 3
19.11.2015, 15:03  [ТС] #6
Цитата Сообщение от Spelcrawler Посмотреть сообщение
Ну если нужно исправить именно эту проблему
В идеале конечно при клике не в EditText надо закрывать
0
Pablito
2545 / 2027 / 631
Регистрация: 12.05.2014
Сообщений: 7,141
Завершенные тесты: 1
19.11.2015, 15:55 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
вот, затестировал еще вариант
в активити переопределяем метод
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
234 / 234 / 25
Регистрация: 19.01.2013
Сообщений: 1,765
Записей в блоге: 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
Привет! Вот еще темы с ответами:

Программно заблокировать клавиатуру - Программирование Android
Как из приложения можно заблокировать клавиатуру и экран моб телефона от нажатий пользователя? или как переопределить событие от клавиши...

Убрать цифровую клавиатуру - Программирование Android
Добрый день! В приложении есть интент который использую в качестве окна с настройками. Он состоит из вертикального LinearLayout в котором...

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

Как применить собственную клавиатуру? - Программирование Android
Всем привет) Я сделал свою клавиатуру но не подумал об этом( как прошить его к девайсу?? прогуглил ничо толком не нашел,,должен же быть...


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

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

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