Нажатие за пределы View(EditText)

123
05 августа 2019, 08:10

Нужно сделать так, чтобы программа понимала, что пользователь нажал на ЛЮБОЕ место экрана за пределами editText.

Я использую аннотацию @OnFocusChange библиотеки ButterKnife.

Этот метод с аннотацией вызывается, когда пользователь нажимает на нужный EditText или на любую другую View, если мой EditText был в фокусе.

Если я нажимаю на пустое место экрана, то метод не вызывается.

Мне надо сделать так, чтобы метод срабатывал не только при выборе другого View, но и при нажатии просто за пределы данного EditText.

@OnFocusChange(R.id.editText){
public void OnFocusChangeEditText(){
    if (editText.hasFocus()){
    //...
    }
    else{
    //...
    }
}
Answer 1

Для того, чтобы обрабатывать любые клики по экрану в Android существуют два метода: onTouchEvent и onInterceptTouchEvent. Все они доступны для любого View. Если вы хотите обработать клик по экрану, вы можете переопределить метод onTouchEvent(view: View, event: MotionEvent). Event содержит координаты касания, а также тип касания (палец опущен на экран, палец двигается по экрану, палец оторвался от экрана)

Answer 2

Решил данную проблему таким способом: вместо метода по изменению фокуса использовал обычный onTouch

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    //...
    return false;
}

в котором обрабатывал нажатие на все элементы экрана(при нажатии на любой элемент возвращал изначальный размер всех остальных элементов). Выглядит как костыль, потому что надо все элементы добавлять вручную, но для активити с маленьким кол-вом элементов сгодится. Если элементов много, то данное решение можно считать нецелесообразным.

READ ALSO
Передать данные из одного фрагмента в другой через Preferences

Передать данные из одного фрагмента в другой через Preferences

Есть 2 фрагмента в одном активити которые сменяются слайдом(2 вкладки)2 фрагмента: ArmaturaWeight

104
Закрывается ли сессия

Закрывается ли сессия

Из одной статьи в интернете : SessionFactory getCurrentSession() возвращает сессию, связанную с контекстомНо для того, чтобы это работало, нам нужно настроить...

110
CopyOnWriteArrayList vs ArrayList

CopyOnWriteArrayList vs ArrayList

Изучаю пакет javautil

89
Указание width, height в процентах

Указание width, height в процентах

Подскажите пожалуйста, нужна ваша точка зренияАдекватный ли тон на css верстке если вся ширина и высота указана в процентах?

108