2013-08-09 2 views
0

Из дочернего представления onTouchEvent (скажем, TextView, который находится в ListView), мне было интересно, какой метод вызывать, если я хочу вручную переслать это событие своему родительскому объекту.Вручную передать onTouchEvent представления его родительскому объекту

Я знаю, что я могу просто вызвать super.onTouchEvent() из переопределения TextView, но я хочу вызвать родительское представление вручную.

Я смотрел на источник, и не видел ни одного вызова к действию

parent.onTouchEvent(e) 

и так было интересно, как это делается?

Я думаю, может быть, здесь есть viewTreeObserver, но не слишком уверен.

спасибо.

+0

у ребенка на событии touch вы не можете вернуть false, а затем прикосновение автоматически передается иерархии дерева представлений в ontouch родителя? – o0rebelious0o

ответ

1

От андроида апи:

общественного логического onTouchEvent (MotionEvent событие) Добавлен в уровне API 1

Реализуйте этот метод для обработки событий касания движения экрана. Параметры Событие Событие движения. Возвращает

True if the event was handled, false otherwise. 

Реализовать на сенсорном слушателя в родителя, и ребенка, и ребенка, если вы хотите, чтобы событие прошло вверх, просто возвращает ложь и родительский метод будет вызван. Это прикосновение итерации до касания иерархии до касания не «потребляются»

EDIT -

Чтобы получить родительский попробовать View.getParent();

TextView yourTV = (TV) findViewById(R.id.your_TV); 
RelativeLayout yourRelLay = (RelativeLayout) yourTV.getParent(); 
yourRelLay.dispatchTouchEvent(motionEvent); 

Вы можете сделать это в onTouchEvent ребенка вручную сделай это.

+0

Это из этой реализации (из моего класса TextView2: TextView), где я хочу вызвать родительский onTouchEvent() вручную. Поэтому мне нужно знать, как ребенок смотрит, кто его родитель. Я не вижу такой логики в источнике для TextView.java или View.java http://androidxref.com/4.0.4/xref/frameworks/base/core/java/android/widget/ExpandableListView.java# mConnector). – samosaris

+0

Добавлено редактирование, это то, что вы хотите? – o0rebelious0o

+0

Хорошо, это выглядит правдоподобно. Наверное, я не пробовал этот b/c, я не видел его в источнике, и 95% времени, когда я вызвал view.getParent() его значение null (lol), но я дам ему шанс. Благодарю. – samosaris

Смежные вопросы