understanding android handling of touch events

11
Understanding Android Handling of Touch Events by Jens Mohrmann [email protected] google.com/+JensMohrmann

Upload: jensmohr

Post on 21-Mar-2017

274 views

Category:

Mobile


1 download

TRANSCRIPT

Page 1: Understanding Android Handling of Touch Events

Understanding Android Handling of Touch Events

by Jens [email protected]

google.com/+JensMohrmann

Page 2: Understanding Android Handling of Touch Events

Quick CV

• TU Berlin Computer Science Diploma 1986 • Freelance Consultant since 1993 (Hospitality,

Banking)• Android Programming since 4/2014

Page 3: Understanding Android Handling of Touch Events

My Task

Implement a restaurant check split screen to easily select order items.Use ExpandableListView to represent restaurant check. ExpandableListView_1

Page 4: Understanding Android Handling of Touch Events

My Task

Implement a Swipe Gesture such asSwipe from left to right select one orderSwipe from right to left unselect one order

Page 5: Understanding Android Handling of Touch Events

Android Touch Events

• ACTION_DOWN• ACTION_UP• ACTION_MOVE• ACTION_POINTER_DOWN• ACTION_POINTER_UP• ACTION_CANCELGesture always starts with ACTION_DOWN

Page 6: Understanding Android Handling of Touch Events

Implementation Swipe

Implement a View.OnTouchListenerOther alternative is subclassing fromExpandableListView and override onTouch() ExpandableListView_2

Page 7: Understanding Android Handling of Touch Events

Error Analysis

After applying TouchListener, collapse/expandand scroll don‘t work any more.

Page 8: Understanding Android Handling of Touch Events

Event Path ACTION_DOWN

ActivitydispatchTouch

Event()

ExpandableListView

dispatchTouchEvent()

ViewGroupdispatchTouch

Event()

ViewdispatchTouch

Event()

ActivityonTouch()

ExpandableListView

onTouch()

ViewGrouponTouch()

ViewonTouch()

Page 9: Understanding Android Handling of Touch Events

Event Path ACTION_UP

ActivitydispatchTouch

Event()

ExpandableListView

dispatchTouchEvent()

ViewGroupdispatchTouch

Event()

ViewGrouponTouch()

Page 10: Understanding Android Handling of Touch Events

Final Solution

Events need to be handled on ExpandableListView and not on the item ViewGroup level to harmonize between scrolland swipe ExpandableListView_3