# LinkMovementMethodCompat

Artifact: [androidx.core:core](https://developer.android.com/jetpack/androidx/releases/core) [View Source](https://cs.android.com/search?q=file:androidx/core/text/method/LinkMovementMethodCompat.java+class:androidx.core.text.method.LinkMovementMethodCompat) Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/core#1.11.0)

*** ** * ** ***


```
public class LinkMovementMethodCompat extends LinkMovementMethod
```

<br />

|---|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) |||||
| ↳ | [android.text.method.BaseMovementMethod](https://developer.android.com/reference/android/text/method/BaseMovementMethod.html) ||||
|   | ↳ | [android.text.method.ScrollingMovementMethod](https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html) |||
|   |   | ↳ | [android.text.method.LinkMovementMethod](https://developer.android.com/reference/android/text/method/LinkMovementMethod.html) ||
|   |   |   | ↳ | [androidx.core.text.method.LinkMovementMethodCompat](https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat) |

*** ** * ** ***

Backwards compatible version of `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html` which fixes the issue that links can be triggered for touches outside of line bounds before Android V.

## Summary

| ### Public methods |
|---|---|
| `static @https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat` | `https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat#getInstance()()` Retrieves the singleton instance of `https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat`. |
| `boolean` | `https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat#onTouchEvent(android.widget.TextView,android.text.Spannable,android.view.MotionEvent)( @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/widget/TextView.html widget, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/text/Spannable.html buffer, @https://jspecify.dev/docs/api/org/jspecify/annotations/Nullable.html https://developer.android.com/reference/android/view/MotionEvent.html event )` |

| ### Inherited methods |
|---|
| From [android.text.method.BaseMovementMethod](https://developer.android.com/reference/android/text/method/BaseMovementMethod.html) |---|---| | `int` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#getMovementMetaState(android.text.Spannable, android.view.KeyEvent)(https://developer.android.com/reference/android/text/Spannable.html buffer, https://developer.android.com/reference/android/view/KeyEvent.html event)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#nextParagraph(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#onGenericMotionEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html text, https://developer.android.com/reference/android/view/MotionEvent.html event)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#onKeyDown(android.widget.TextView, android.text.Spannable, int, android.view.KeyEvent)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html text, int keyCode, https://developer.android.com/reference/android/view/KeyEvent.html event)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#onKeyOther(android.widget.TextView, android.text.Spannable, android.view.KeyEvent)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html text, https://developer.android.com/reference/android/view/KeyEvent.html event)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#onKeyUp(android.widget.TextView, android.text.Spannable, int, android.view.KeyEvent)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html text, int keyCode, https://developer.android.com/reference/android/view/KeyEvent.html event)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#onTrackballEvent(android.widget.TextView, android.text.Spannable, android.view.MotionEvent)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html text, https://developer.android.com/reference/android/view/MotionEvent.html event)` | | `boolean` | `https://developer.android.com/reference/android/text/method/BaseMovementMethod.html#previousParagraph(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | |
| From [android.text.method.LinkMovementMethod](https://developer.android.com/reference/android/text/method/LinkMovementMethod.html) |---|---| | `boolean` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#canSelectArbitrarily()()` | | `boolean` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#down(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `static https://developer.android.com/reference/android/text/method/MovementMethod.html` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#getInstance()()` | | `boolean` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#handleMovementKey(android.widget.TextView, android.text.Spannable, int, int, android.view.KeyEvent)( https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer, int keyCode, int movementMetaState, https://developer.android.com/reference/android/view/KeyEvent.html event )` | | `void` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#initialize(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html text)` | | `boolean` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#left(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `void` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#onTakeFocus(android.widget.TextView, android.text.Spannable, int)(https://developer.android.com/reference/android/widget/TextView.html view, https://developer.android.com/reference/android/text/Spannable.html text, int dir)` | | `boolean` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#right(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/LinkMovementMethod.html#up(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | |
| From [android.text.method.ScrollingMovementMethod](https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html) |---|---| | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#bottom(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#end(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#home(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#lineEnd(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#lineStart(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#pageDown(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#pageUp(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | | `boolean` | `https://developer.android.com/reference/android/text/method/ScrollingMovementMethod.html#top(android.widget.TextView, android.text.Spannable)(https://developer.android.com/reference/android/widget/TextView.html widget, https://developer.android.com/reference/android/text/Spannable.html buffer)` | |

## Public methods

### getInstance

Added in [1.11.0](https://developer.android.com/jetpack/androidx/releases/core#1.11.0)

```
public static @NonNull LinkMovementMethodCompat getInstance()
```

Retrieves the singleton instance of `https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat`.

| Returns |
|---|---|
| `@https://jspecify.dev/docs/api/org/jspecify/annotations/NonNull.html https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat` | the singleton instance of `https://developer.android.com/reference/androidx/core/text/method/LinkMovementMethodCompat` |

### onTouchEvent

```
public boolean onTouchEvent(
    @Nullable TextView widget,
    @Nullable Spannable buffer,
    @Nullable MotionEvent event
)
```