In meinem Layout Ich habe eine Struktur wie folgt aus:Wie klicke ich in die untergeordneten Ansichten und in die übergeordneten ViewGroups?
--RelativeLayout
|
--FrameLayout
|
--Button, EditText...
I Touch-Ereignisse in der RelativeLayout und im FrameLayout behandeln wollen, so habe ich die onTouchListener in diesen beiden Gruppen Ansicht. Aber nur die Berührung im RelativeLayout wird erfasst.
Um dies zu lösen, schrieb ich meine eigene CustomRelativeLayout und überschreiben die onInterceptTouchEvent
, jetzt wird der Klick in der untergeordneten ViewGroup (FrameLayout) erfasst, aber der Klick in den Schaltflächen und anderen Ansichten macht keinen Effekt.
In meinem eigenen benutzerdefinierten Layout, ich habe dies:
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
Angenommen, ich möchte die Berührungsereignisse nur für die Behandlung einiger der untergeordneten Elemente überschreiben. Was kann ich in dieser Funktion tun, damit sie funktioniert? Ich meine, für einige Kinder würde es wie gewohnt funktionieren, und für einige wird die Elternsicht entscheiden, ob sie die Berührungsereignisse erhalten oder nicht. –
@androiddeveloper das ist eine wirklich gute Frage. Warum postest du es nicht als Frage? –
@androiddeveloper Ich fragte und beantwortete diese Frage hier: http://stackoverflow.com/questions/30966412/how-to-vary-between-child-and-parent-view-group-touch-events, wenn Sie interessiert sind. –