Я пытаюсь заставить элемент управления EditText потерять фокус, когда пользователь нажимает кнопку «Назад», чтобы скрыть клавиатуру. Есть много вопросов, подобных этому уже, но через несколько часов я не смог заставить его работать.Force EditText потерять фокус при нажатии назад
Во-первых, просто немного контекста. У меня есть ListView с настраиваемыми элементами. Каждый элемент имеет несколько TextView и один EditText. У меня есть метод AfterTextChanged(), сохраняющий отредактированные значения. У меня есть стиль, созданный для выделения поля, если он имеет фокус. К сожалению, теперь гораздо более очевидно, что EditText фактически не теряет фокус, когда вы скрываете (мягкую) клавиатуру, и я думаю, что это запутывает. Я бы хотел, чтобы EditText не фокусировался, если нет клавиатуры.
Решение, которое представляется наиболее разумным, заключается в переопределении OnBackPressed() в операции, как описано here. К сожалению, похоже, что мой метод не вызван. То есть поле все еще сфокусировано, а точка останова в функции не срабатывает.
Аналогично, прослушиватель OnKeyUp() не запускается, а Xamarin не поддерживает обработчик OnKeyUp для элемента управления EditText.
Я не пытаюсь подавить клавиатуру при создании или что-то еще, поэтому использование каких-либо невидимых трюков управления тоже не помогает.
Очевидно, что у многих людей есть эта проблема. Я уверен, что один из вас решил это! Можете ли вы поделиться своим решением?
Большое вам спасибо! -Karen
P.S. Мне не нужно знать, как скрыть клавиатуру. Мне нужно принять меры, когда пользователь скрывает клавиатуру с помощью кнопки «Назад». Спасибо :)
Тот факт, что 'onBackPressed()' не называют звучит как отдельный выпуск. И было бы лучше сосредоточиться на этом. – keyser