Хорошо,
Когда у меня есть фокус на моем EditText, и клавиатура и т.д. показывает.Я нажимаю на свой чертеж в конце текста редактирования (кнопка «Отмена»).Я распознаю это событие с помощью onTouchListener и скрываю клавиатуру, четкую фокусировку и т. Д.
Однако, когда я «касаюсь» кнопки отмены, она скрывает клавиатуру, но фокус остается на тексте редактирования.То есть курсор все еще показывает, но не мигает.Поэтому, когда я снова щелкаю по тексту редактирования, чтобы получить фокус, он показывает возможность копирования / вставки и т. Д., Как будто я долго нажимаю на курсор и не показывает клавиатуру.
Но когда я «нажимаю» кнопку отмены, она очищает фокус, скрывает клавиатуру и, что наиболее важно, скрывает курсор, в результате чего полностью удаляется фокус.Затем, когда я снова нажимаю на текст редактирования, он снова фокусируется и показывает клавиатуру.
Что это за странное поведение, и как мне сделать так, чтобы оно всегда выполняло поведение "нажатия".
мой код:
searchView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
if (event.getRawX() >= searchView.getRight() - searchView.getCompoundDrawables()[2].getBounds().width()) {
hideKeyboard(v);
isSearching = false;
searchView.setText("");
searchView.clearFocus();
searchView.setFocusable(false);
searchView.setFocusableInTouchMode(false);
getView().requestFocus(); // parent has both focusables true
searchView.setFocusable(true);
searchView.setFocusableInTouchMode(true);
fetchArticles();
return true;
}
}
return false;
}
});
Как вы видите, я стараюсь изо всех сил, чтобы всегда вести себя одинаково.Однако пока не повезло.Надеюсь, вы, ребята, можете мне помочь!