# GestureDetectorCompat

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1  
Summary:[Ctors](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#pubctors)\|[Methods](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#)  

# GestureDetectorCompat

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public

final

class
GestureDetectorCompat
`  
`

extends Object


``


`

|---|-----------------------------------------------|
| java.lang.Object                                 ||
| ↳ | android.support.v4.view.GestureDetectorCompat |

<br />

*** ** * ** ***

Detects various gestures and events using the supplied[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)s. The[GestureDetector.OnGestureListener](https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html)callback will notify users when a particular motion event has occurred. This class should only be used with[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)s reported via touch (don't use for trackball events).

This compatibility implementation of the framework's GestureDetector guarantees the newer focal point scrolling behavior from Jellybean MR1 on all platform versions.
To use this class:

- Create an instance of the`GestureDetectorCompat`for your[View](https://developer.android.com/reference/android/view/View.html)
- In the[onTouchEvent(MotionEvent)](https://developer.android.com/reference/android/view/View.html#onTouchEvent(android.view.MotionEvent))method ensure you call[onTouchEvent(MotionEvent)](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#onTouchEvent(android.view.MotionEvent)). The methods defined in your callback will be executed when the events occur.

<br />

## Summary

|                                                                                                                                                                                                                                                                                                       ### Public constructors                                                                                                                                                                                                                                                                                                        ||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[GestureDetectorCompat](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener))`(`[Context](https://developer.android.com/reference/android/content/Context.html)` context, `[GestureDetector.OnGestureListener](https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html)` listener) ` Creates a GestureDetectorCompat with the supplied listener.                                                                                                           |
| ` `[GestureDetectorCompat](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#GestureDetectorCompat(android.content.Context, android.view.GestureDetector.OnGestureListener, android.os.Handler))`(`[Context](https://developer.android.com/reference/android/content/Context.html)` context, `[GestureDetector.OnGestureListener](https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html)` listener, `[Handler](https://developer.android.com/reference/android/os/Handler.html)` handler) ` Creates a GestureDetectorCompat with the supplied listener. |

|                                                                                                                                                                                                                                        ### Public methods                                                                                                                                                                                                                                         ||
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` boolean` | ` `[isLongpressEnabled](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#isLongpressEnabled())`() `                                                                                                                                                                                                                                                                                                                                              |
| ` boolean` | ` `[onTouchEvent](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#onTouchEvent(android.view.MotionEvent))`(`[MotionEvent](https://developer.android.com/reference/android/view/MotionEvent.html)` event) ` Analyzes the given motion event and if applicable triggers the appropriate callbacks on the[GestureDetector.OnGestureListener](https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html)supplied. |
| ` void`    | ` `[setIsLongpressEnabled](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#setIsLongpressEnabled(boolean))`(boolean enabled) ` Set whether longpress is enabled, if this is enabled when a user presses and holds down you get a longpress event and nothing further.                                                                                                                                                                           |
| ` void`    | ` `[setOnDoubleTapListener](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#setOnDoubleTapListener(android.view.GestureDetector.OnDoubleTapListener))`(`[GestureDetector.OnDoubleTapListener](https://developer.android.com/reference/android/view/GestureDetector.OnDoubleTapListener.html)` listener) ` Sets the listener which will be called for double-tap and related gestures.                                                           |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### GestureDetectorCompat

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
GestureDetectorCompat (Context context, 
                GestureDetector.OnGestureListener listener)
```

Creates a GestureDetectorCompat with the supplied listener. As usual, you may only use this constructor from a UI thread.

<br />

|                                                         Parameters                                                         ||
|------------|----------------------------------------------------------------------------------------------------------------|
| `context`  | `Context`: the application's context <br />                                                                    |
| `listener` | `GestureDetector.OnGestureListener`: the listener invoked for all the callbacks, this must not be null. <br /> |

**See also:**

- [Handler()](https://developer.android.com/https://developer.android.com/reference/android/os/Handler#Handler())  

### GestureDetectorCompat

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
GestureDetectorCompat (Context context, 
                GestureDetector.OnGestureListener listener, 
                Handler handler)
```

Creates a GestureDetectorCompat with the supplied listener. As usual, you may only use this constructor from a UI thread.

<br />

|                                                         Parameters                                                         ||
|------------|----------------------------------------------------------------------------------------------------------------|
| `context`  | `Context`: the application's context <br />                                                                    |
| `listener` | `GestureDetector.OnGestureListener`: the listener invoked for all the callbacks, this must not be null. <br /> |
| `handler`  | `Handler`: the handler that will be used for posting deferred messages <br />                                  |

**See also:**

- [Handler()](https://developer.android.com/https://developer.android.com/reference/android/os/Handler#Handler())

## Public methods

### isLongpressEnabled

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean isLongpressEnabled ()
```

<br />

<br />

|                           Returns                           ||
|-----------|--------------------------------------------------|
| `boolean` | true if longpress is enabled, else false. <br /> |

### onTouchEvent

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
boolean onTouchEvent (MotionEvent event)
```

Analyzes the given motion event and if applicable triggers the appropriate callbacks on the[GestureDetector.OnGestureListener](https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html)supplied.

<br />

|                        Parameters                        ||
|---------|-------------------------------------------------|
| `event` | `MotionEvent`: The current motion event. <br /> |

|                                                                                           Returns                                                                                            ||
|-----------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `boolean` | true if the[GestureDetector.OnGestureListener](https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener.html)consumed the event, else false. <br /> |

### setIsLongpressEnabled

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setIsLongpressEnabled (boolean enabled)
```

Set whether longpress is enabled, if this is enabled when a user presses and holds down you get a longpress event and nothing further. If it's disabled the user can press and hold down and then later moved their finger and you will get scroll events. By default longpress is enabled.

<br />

|                            Parameters                             ||
|-----------|--------------------------------------------------------|
| `enabled` | `boolean`: whether longpress should be enabled. <br /> |

### setOnDoubleTapListener

added in[version 22.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setOnDoubleTapListener (GestureDetector.OnDoubleTapListener listener)
```

Sets the listener which will be called for double-tap and related gestures.

<br />

|                                                                        Parameters                                                                        ||
|------------|----------------------------------------------------------------------------------------------------------------------------------------------|
| `listener` | `GestureDetector.OnDoubleTapListener`: the listener invoked for all the callbacks, or null to stop listening for double-tap gestures. <br /> |

-

  ## Annotations

  - [ViewPager.DecorView](https://developer.android.com/reference/android/support/v4/view/ViewPager.DecorView)
-

  ## Interfaces

  - [ActionProvider.VisibilityListener](https://developer.android.com/reference/android/support/v4/view/ActionProvider.VisibilityListener)
  - [AsyncLayoutInflater.OnInflateFinishedListener](https://developer.android.com/reference/android/support/v4/view/AsyncLayoutInflater.OnInflateFinishedListener)
  - [LayoutInflaterFactory](https://developer.android.com/reference/android/support/v4/view/LayoutInflaterFactory)
  - [MenuItemCompat.OnActionExpandListener](https://developer.android.com/reference/android/support/v4/view/MenuItemCompat.OnActionExpandListener)
  - [NestedScrollingChild](https://developer.android.com/reference/android/support/v4/view/NestedScrollingChild)
  - [NestedScrollingChild2](https://developer.android.com/reference/android/support/v4/view/NestedScrollingChild2)
  - [NestedScrollingParent](https://developer.android.com/reference/android/support/v4/view/NestedScrollingParent)
  - [NestedScrollingParent2](https://developer.android.com/reference/android/support/v4/view/NestedScrollingParent2)
  - [OnApplyWindowInsetsListener](https://developer.android.com/reference/android/support/v4/view/OnApplyWindowInsetsListener)
  - [ScrollingView](https://developer.android.com/reference/android/support/v4/view/ScrollingView)
  - [TintableBackgroundView](https://developer.android.com/reference/android/support/v4/view/TintableBackgroundView)
  - [ViewPager.OnAdapterChangeListener](https://developer.android.com/reference/android/support/v4/view/ViewPager.OnAdapterChangeListener)
  - [ViewPager.OnPageChangeListener](https://developer.android.com/reference/android/support/v4/view/ViewPager.OnPageChangeListener)
  - [ViewPager.PageTransformer](https://developer.android.com/reference/android/support/v4/view/ViewPager.PageTransformer)
  - [ViewPropertyAnimatorListener](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorListener)
  - [ViewPropertyAnimatorUpdateListener](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorUpdateListener)
-

  ## Classes

  - [AbsSavedState](https://developer.android.com/reference/android/support/v4/view/AbsSavedState)
  - [AccessibilityDelegateCompat](https://developer.android.com/reference/android/support/v4/view/AccessibilityDelegateCompat)
  - [ActionProvider](https://developer.android.com/reference/android/support/v4/view/ActionProvider)
  - [AsyncLayoutInflater](https://developer.android.com/reference/android/support/v4/view/AsyncLayoutInflater)
  - [GestureDetectorCompat](https://developer.android.com/reference/android/support/v4/view/GestureDetectorCompat)
  - [GravityCompat](https://developer.android.com/reference/android/support/v4/view/GravityCompat)
  - [InputDeviceCompat](https://developer.android.com/reference/android/support/v4/view/InputDeviceCompat)
  - [LayoutInflaterCompat](https://developer.android.com/reference/android/support/v4/view/LayoutInflaterCompat)
  - [MarginLayoutParamsCompat](https://developer.android.com/reference/android/support/v4/view/MarginLayoutParamsCompat)
  - [MenuCompat](https://developer.android.com/reference/android/support/v4/view/MenuCompat)
  - [MenuItemCompat](https://developer.android.com/reference/android/support/v4/view/MenuItemCompat)
  - [MotionEventCompat](https://developer.android.com/reference/android/support/v4/view/MotionEventCompat)
  - [NestedScrollingChildHelper](https://developer.android.com/reference/android/support/v4/view/NestedScrollingChildHelper)
  - [NestedScrollingParentHelper](https://developer.android.com/reference/android/support/v4/view/NestedScrollingParentHelper)
  - [PagerAdapter](https://developer.android.com/reference/android/support/v4/view/PagerAdapter)
  - [PagerTabStrip](https://developer.android.com/reference/android/support/v4/view/PagerTabStrip)
  - [PagerTitleStrip](https://developer.android.com/reference/android/support/v4/view/PagerTitleStrip)
  - [PointerIconCompat](https://developer.android.com/reference/android/support/v4/view/PointerIconCompat)
  - [ScaleGestureDetectorCompat](https://developer.android.com/reference/android/support/v4/view/ScaleGestureDetectorCompat)
  - [VelocityTrackerCompat](https://developer.android.com/reference/android/support/v4/view/VelocityTrackerCompat)
  - [ViewCompat](https://developer.android.com/reference/android/support/v4/view/ViewCompat)
  - [ViewConfigurationCompat](https://developer.android.com/reference/android/support/v4/view/ViewConfigurationCompat)
  - [ViewGroupCompat](https://developer.android.com/reference/android/support/v4/view/ViewGroupCompat)
  - [ViewPager](https://developer.android.com/reference/android/support/v4/view/ViewPager)
  - [ViewPager.LayoutParams](https://developer.android.com/reference/android/support/v4/view/ViewPager.LayoutParams)
  - [ViewPager.SavedState](https://developer.android.com/reference/android/support/v4/view/ViewPager.SavedState)
  - [ViewPager.SimpleOnPageChangeListener](https://developer.android.com/reference/android/support/v4/view/ViewPager.SimpleOnPageChangeListener)
  - [ViewParentCompat](https://developer.android.com/reference/android/support/v4/view/ViewParentCompat)
  - [ViewPropertyAnimatorCompat](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorCompat)
  - [ViewPropertyAnimatorListenerAdapter](https://developer.android.com/reference/android/support/v4/view/ViewPropertyAnimatorListenerAdapter)
  - [WindowCompat](https://developer.android.com/reference/android/support/v4/view/WindowCompat)
  - [WindowInsetsCompat](https://developer.android.com/reference/android/support/v4/view/WindowInsetsCompat)