На мой взгляд, у меня есть виджет EditText. Когда пользователь выбирает виджет EditText, я показываю некоторые инструкции, и появляется программная клавиатура.
Я использую OnEditorActionListener, чтобы определить, когда пользователь завершил ввод текста, и я отключаю клавиатуру, скрываю инструкции и выполняю некоторые действия.
Моя проблема в том, что пользователь закрывает клавиатуру, нажимая клавишу НАЗАД. ОС закрывает клавиатуру, но мои инструкции (которые мне нужно скрыть) все еще видны.
Я пробовал переопределить OnKeyDown, но, похоже, он не вызывается, когда кнопка BACK используется для закрытия клавиатуры.
Я пробовал установить OnKeyListener для виджета EditText, но, похоже, он тоже не вызывается.
Как я могу определить, когда отключается программная клавиатура?
onKeyPreIme
? Или есть особая причина, по которой это не так?SearchView
, обратитесь к stackoverflow.com/questions/9629313/…Джей, твое решение хорошее! Спасибо :)
источник
KeyEvent.ACTION_UP
?android.support.v7.widget.AppCompatEditText
под тонировку.AppCompatEditText
для androidxЯ немного изменил решение Джея, вызвав super.onKeyPreIme ():
Замечательное решение, Джей, +1!
источник
Вот мой собственный EditText, чтобы определить, отображается ли клавиатура или нет
источник
Сейчас 2019 год ...
Итак, я создал более удобное решение с Kotlin.
1. Создайте функцию расширения:
2. Где находится прослушиватель переключения:
3. Используйте его в любом простом действии :
источник
Просто создайте класс, расширяющий Edittext, и используйте этот edittext в своем коде, вам нужно просто переопределить следующий метод в настраиваемом edittext:
источник
Вот решение с ключевым слушателем. Я понятия не имею, почему это работает, но OnKeyListener работает, если вы просто переопределяете onKeyPreIme в своем пользовательском EditText.
SomeClass.java
CustomEditText.java
источник
Используя ответ @ olivier_sdg, но преобразованный в Kotlin:
Использование:
источник
Для всех, кто хочет сделать то же самое в Xamarin, я перевел некоторые из основных ответов, поскольку они немного отличаются. Я создал суть здесь , но подведение итогов, создать пользовательскую EditText и переопределение
OnKeyPreIme
как так:... а потом в представлении ...
источник
hideSoftInputFromWindow
возвращает истину, когда клавиатура закрывается, используйте это значение для обнаружения закрытия клавиатуры в androidисточник