Android EditText onTouch Event

У меня есть такой макет:

родитель: RelativeLayout с onTouchListener

Ребенок: EditText спичка ведьмы RelativeLayout

Итак EditText заполняет RelativeLayout, Я сейчас не хочу вставлять / разрешать ввод в EditText, Моя цель - уволить onTouchListener макета. Но это не сработает. Я пробовал разные варианты для EditText:

  1. setEditable(false) а также setFocusable(false)-> Хорошо, поэтому нет ввода, но и нет onTouch()

  2. setOnTouchListener(new OnTouchListener){return false});-> Насколько я понимаю, это должно работать в сочетании с вариантом 1., но все же нет TouchEvent в RelativeLayout,

TextViews работать без проблем, но я думаю, что это потому, что они не используют onTouch Одер onClick, Что я могу сделать, чтобы EditViews (или Views, которые перехватывают touchEvents) не перехватывали touchEvent?

Зачем все это: я хочу переместить RelativeLayout когда пользователь прикасается к нему. Это работает хорошо, пока я не помещаю детей, которые соответствуют родительским.

Может быть, кто-то может мне помочь.

2 ответа

Вы должны переопределить метод onTouchEvent вашего EditText и вернуть false. Это сработало для меня!

Не видя некоторого кода, трудно привести хороший пример. Вы могли бы сделать:

     yourEditText.setEnabled(false);

и включите его, если вам нужно (setEnabled(true);)

Или переопределить OnTouchListener:

     yourEditText.setOnTouchListener(new OnTouchListener(){

                 @override
                 public boolean onTouch(){

                 }
       });

Ничего не пишите на Touch(). Но это значит, что никогда ничего не случится, даже если Тебе это нужно.

Другие вопросы по тегам