Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# ViewConfiguration

*** ** * ** ***

```
open class ViewConfiguration
```

|---|---|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html) ||
| ↳ | [android.view.ViewConfiguration](https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#) |

Contains methods to standard constants used in the UI for timeouts, sizes, and distances.

## Summary

| Public constructors ||
|---|---|
| `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#ViewConfiguration()()` <br /> |

| Public methods ||
|---|---|
| open static [ViewConfiguration](https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#)! | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#get(android.content.Context)(context: https://developer.android.com/reference/kotlin/android/content/Context.html#)` Returns a configuration for the specified `https://developer.android.com/reference/kotlin/android/content/Context.html#`. |
| open static [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getAmbiguousGestureMultiplier()()` The multiplication factor for inhibiting default gestures. |
| open static [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getDefaultActionModeHideDuration()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getDoubleTapTimeout()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getDoubleTapTimeoutMillis()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getEdgeSlop()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getFadingEdgeLength()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getFocusTraversalThreshold(kotlin.Int,%20kotlin.Int,%20kotlin.Int)(inputDeviceId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, axis: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, source: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Provides the focus traversal threshold (in pixels) for a motion generated by a specific input device configuration and motion axis. |
| open static [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getGlobalActionKeyTimeout()()` The amount of time a user needs to press the relevant key to bring up the global actions dialog. |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getJumpTapTimeout()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getKeyRepeatDelay()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getKeyRepeatTimeout()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getLongPressTimeout()()` Used for both key and motion events. |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getLongPressTimeoutMillis()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getMaximumDrawingCacheSize()()` The maximum drawing cache size expressed in bytes. |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getMaximumFlingVelocity()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getMinimumFlingVelocity()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getMultiPressTimeout()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getMultiPressTimeoutMillis()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getPressedStateDuration()()` <br /> |
| open [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledAmbiguousGestureMultiplier()()` The multiplication factor for inhibiting default gestures. |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledDoubleTapSlop()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledEdgeSlop()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledFadingEdgeLength()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledHandwritingGestureLineMargin()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledHandwritingSlop()()` <br /> |
| open [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledHorizontalScrollFactor()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledHoverSlop()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMaximumDrawingCacheSize()()` The maximum drawing cache size expressed in bytes. |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMaximumFlingVelocity()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMaximumFlingVelocity(kotlin.Int,%20kotlin.Int,%20kotlin.Int)(inputDeviceId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, axis: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, source: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Maximum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/kotlin/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`. |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMinimumFlingVelocity()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMinimumFlingVelocity(kotlin.Int,%20kotlin.Int,%20kotlin.Int)(inputDeviceId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, axis: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, source: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Minimum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/kotlin/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`. |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMinimumScalingSpan()()` Retrieves the distance in pixels between touches that must be reached for a gesture to be interpreted as scaling. |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledOverflingDistance()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledOverscrollDistance()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledPagingTouchSlop()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledScrollBarSize()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledTouchSlop()()` <br /> |
| open [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledVerticalScrollFactor()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledWindowTouchSlop()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScrollBarFadeDuration()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScrollBarSize()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScrollDefaultDelay()()` <br /> |
| open static [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScrollFriction()()` The amount of friction applied to scrolls and flings. |
| open [Float](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScrollFrictionAmount()()` The amount of friction applied to scrolls and flings. |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getTapTimeout()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getTapTimeoutMillis()()` <br /> |
| open [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getTextCursorBlinkIntervalMillis()()` Returns the duration in milliseconds of the text cursor blink interval, which is the elapsed time between inversions of the color of the text cursor's pixels. |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getTouchSlop()()` <br /> |
| open static [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getWindowTouchSlop()()` <br /> |
| open static [Long](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getZoomControlsTimeout()()` The amount of time that the zoom controls should be displayed on the screen expressed in milliseconds. |
| open [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#hasPermanentMenuKey()()` Report if the device has a permanent menu key available to the user. |
| open [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#isFocusNavigationEnabled(kotlin.Int,%20kotlin.Int,%20kotlin.Int)(inputDeviceId: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, axis: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html, source: https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)` Checks whether focus navigation is enabled for a motion generated by a specific input device configuration and motion axis. |
| open [Boolean](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) | `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#shouldShowMenuShortcutsWhenKeyboardPresent()()` Check if shortcuts should be displayed in menus. |

## Public constructors

### ViewConfiguration

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
ViewConfiguration()
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#get(android.content.Context)` instead.*

## Public methods

### get

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun get(context: Context): ViewConfiguration!
```

Returns a configuration for the specified `https://developer.android.com/reference/kotlin/android/content/Context.html#`. The configuration depends on various parameters of the `https://developer.android.com/reference/kotlin/android/content/Context.html#`, like the dimension of the display or the density of the display.

| Parameters ||
|---|---|
| `context` | [Context](https://developer.android.com/reference/kotlin/android/content/Context.html#): A visual `https://developer.android.com/reference/kotlin/android/content/Context.html#` is preferred to initialize the view configuration. It should ideally be an `https://developer.android.com/reference/kotlin/android/app/Activity.html#` or other `https://developer.android.com/reference/kotlin/android/content/Context.html#` created with `https://developer.android.com/reference/kotlin/android/content/Context.html#createWindowContext(kotlin.Int,%20android.os.Bundle)`, but is not required to be. This value cannot be `null`. |

### getAmbiguousGestureMultiplier

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getAmbiguousGestureMultiplier(): Float
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledAmbiguousGestureMultiplier()`.*

The multiplication factor for inhibiting default gestures. If a MotionEvent has `https://developer.android.com/reference/kotlin/android/view/MotionEvent#CLASSIFICATION_AMBIGUOUS_GESTURE:kotlin.Int` set, then certain actions, such as scrolling, will be inhibited. However, to account for the possibility of an incorrect classification, existing gesture thresholds (e.g. scrolling touch slop and the long-press timeout) should be scaled by this factor and remain in effect.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html` | Value is 1.0f or greater |

### getDefaultActionModeHideDuration

Added in [API level 23](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getDefaultActionModeHideDuration(): Long
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html` | the default duration in milliseconds for `https://developer.android.com/reference/kotlin/android/view/ActionMode#hide(kotlin.Long)`. |

### getDoubleTapTimeout

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getDoubleTapTimeout(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered a double-tap. |

### getDoubleTapTimeoutMillis

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getDoubleTapTimeoutMillis(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered a double-tap. |

### getEdgeSlop

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getEdgeSlop(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledEdgeSlop()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Inset in dips to look for touchable content when the user touches the edge of the screen |

### getFadingEdgeLength

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getFadingEdgeLength(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledFadingEdgeLength()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the length of the fading edges in dips |

### getFocusTraversalThreshold

Added in [API level 37.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getFocusTraversalThreshold(
    inputDeviceId: Int, 
    axis: Int, 
    source: Int
): Int
```

Provides the focus traversal threshold (in pixels) for a motion generated by a specific input device configuration and motion axis.

Focus traversal threshold here refers to the minimum movement distance required to trigger a focus traversal event.

| Parameters ||
|---|---|
| `inputDeviceId` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the ID of the `https://developer.android.com/reference/kotlin/android/view/InputDevice` that generated the motion. |
| `axis` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the axis of the motion. |
| `source` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the input source of the motion. |

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the focus traversal threshold in pixels. If focus traversal is not supported for the given configuration, this method returns -1. |

### getGlobalActionKeyTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 20](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getGlobalActionKeyTimeout(): Long
```

**Deprecated:** *This timeout should not be used by applications*

The amount of time a user needs to press the relevant key to bring up the global actions dialog.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html` | how long a user needs to press the relevant key to bring up the global actions dialog. |

### getJumpTapTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getJumpTapTimeout(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds we will wait to see if a touch event is a jump tap. If the user does not move within this interval, it is considered to be a tap. |

### getKeyRepeatDelay

Added in [API level 12](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getKeyRepeatDelay(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the time between successive key repeats in milliseconds. |

### getKeyRepeatTimeout

Added in [API level 12](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getKeyRepeatTimeout(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the time before the first key repeat in milliseconds. |

### getLongPressTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getLongPressTimeout(): Int
```

Used for both key and motion events.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds before a press turns into a long press |

### getLongPressTimeoutMillis

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getLongPressTimeoutMillis(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds before a press turns into a long press. |

### getMaximumDrawingCacheSize

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getMaximumDrawingCacheSize(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMaximumDrawingCacheSize()` instead.*

The maximum drawing cache size expressed in bytes.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the maximum size of View's drawing cache expressed in bytes |

### getMaximumFlingVelocity

Added in [API level 4](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getMaximumFlingVelocity(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMaximumFlingVelocity()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Maximum velocity to initiate a fling, as measured in dips per second. |

### getMinimumFlingVelocity

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getMinimumFlingVelocity(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMinimumFlingVelocity()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Minimum velocity to initiate a fling, as measured in dips per second. |

### getMultiPressTimeout

Added in [API level 31](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getMultiPressTimeout(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered part of the same multi-press. |

### getMultiPressTimeoutMillis

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getMultiPressTimeoutMillis(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds between the first tap's up event and the second tap's down event for an interaction to be considered part of the same multi-press. |

### getPressedStateDuration

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getPressedStateDuration(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds of the pressed state in child components. |

### getScaledAmbiguousGestureMultiplier

Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledAmbiguousGestureMultiplier(): Float
```

The multiplication factor for inhibiting default gestures. If a MotionEvent has `https://developer.android.com/reference/kotlin/android/view/MotionEvent#CLASSIFICATION_AMBIGUOUS_GESTURE:kotlin.Int` set, then certain actions, such as scrolling, will be inhibited. However, to account for the possibility of an incorrect classification, existing gesture thresholds (e.g. scrolling touch slop and the long-press timeout) should be scaled by this factor and remain in effect.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html` | Value is 1.0f or greater |

### getScaledDoubleTapSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledDoubleTapSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in pixels between the first touch and second touch to still be considered a double tap |

### getScaledEdgeSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledEdgeSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Inset in pixels to look for touchable content when the user touches the edge of the screen |

### getScaledFadingEdgeLength

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledFadingEdgeLength(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the length of the fading edges in pixels |

### getScaledHandwritingGestureLineMargin

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledHandwritingGestureLineMargin(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | margin in pixels around text line bounds where stylus handwriting gestures should be supported. |

### getScaledHandwritingSlop

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledHandwritingSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in pixels a stylus touch can wander before we think the user is handwriting. |

### getScaledHorizontalScrollFactor

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledHorizontalScrollFactor(): Float
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html` | Amount to scroll in response to a horizontal `https://developer.android.com/reference/kotlin/android/view/MotionEvent#ACTION_SCROLL:kotlin.Int` event. Multiply this by the event's axis value to obtain the number of pixels to be scrolled. |

### getScaledHoverSlop

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledHoverSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in pixels a hover can wander while it is still considered "stationary". |

### getScaledMaximumDrawingCacheSize

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledMaximumDrawingCacheSize(): Int
```

The maximum drawing cache size expressed in bytes.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the maximum size of View's drawing cache expressed in bytes |

### getScaledMaximumFlingVelocity

Added in [API level 4](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledMaximumFlingVelocity(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Maximum velocity to initiate a fling, as measured in pixels per second. |

### getScaledMaximumFlingVelocity

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledMaximumFlingVelocity(
    inputDeviceId: Int, 
    axis: Int, 
    source: Int
): Int
```

Maximum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/kotlin/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`.

Similar to `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledMinimumFlingVelocity(kotlin.Int,%20kotlin.Int,%20kotlin.Int)`, but for maximum fling velocity, instead of minimum. Also, unlike that method which returns `Integer.MAX_VALUE` for bad input device ID, source and/or motion event axis inputs, this method returns `Integer.MIN_VALUE` for such bad inputs.

### getScaledMinimumFlingVelocity

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledMinimumFlingVelocity(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Minimum velocity to initiate a fling, as measured in pixels per second. |

### getScaledMinimumFlingVelocity

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledMinimumFlingVelocity(
    inputDeviceId: Int, 
    axis: Int, 
    source: Int
): Int
```

Minimum absolute value of velocity to initiate a fling for a motion generated by an `https://developer.android.com/reference/kotlin/android/view/InputDevice` with an id of `inputDeviceId`, from an input `source` and on a given motion event `axis`.

Before utilizing this method to get a minimum fling velocity for a motion generated by the input device, scale the velocity of the motion events generated by the input device to pixels per second.

For instance, if you tracked `https://developer.android.com/reference/kotlin/android/view/MotionEvent#AXIS_SCROLL:kotlin.Int` vertical velocities generated from a `https://developer.android.com/reference/kotlin/android/view/InputDevice#SOURCE_ROTARY_ENCODER:kotlin.Int`, the velocity returned from `https://developer.android.com/reference/kotlin/android/view/VelocityTracker` will be in the units with which the axis values were reported in the motion event. Before comparing that velocity against the minimum fling velocity specified here, make sure that the `https://developer.android.com/reference/kotlin/android/view/MotionEvent#AXIS_SCROLL:kotlin.Int` velocity from the tracker is calculated in "units per second" (see `https://developer.android.com/reference/kotlin/android/view/VelocityTracker#computeCurrentVelocity(kotlin.Int)`, `https://developer.android.com/reference/kotlin/android/view/VelocityTracker#computeCurrentVelocity(kotlin.Int,%20kotlin.Float)` to adjust your velocity computations to "per second"), and use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledVerticalScrollFactor()` to change this velocity value to "pixels/second".

If the provided `inputDeviceId` is not valid, or if the input device whose ID is provided does not support the given motion event source and/or axis, this method will return `Integer.MAX_VALUE`.

### Obtaining the correct arguments for this method call

**inputDeviceId** : if calling this method in response to a `https://developer.android.com/reference/kotlin/android/view/MotionEvent`, use the device ID that is reported by the event, which can be obtained using `https://developer.android.com/reference/kotlin/android/view/MotionEvent#getDeviceId()`. Otherwise, use a valid ID that is obtained from `https://developer.android.com/reference/kotlin/android/view/InputDevice#getId()`, or from an `https://developer.android.com/reference/kotlin/android/hardware/input/InputManager.html#` instance (`https://developer.android.com/reference/kotlin/android/hardware/input/InputManager.html#getInputDeviceIds()` gives all the valid input device IDs).

**axis** : a `https://developer.android.com/reference/kotlin/android/view/MotionEvent` may report data for multiple axes, and each axis may have multiple data points for different pointers. Use the axis for which you obtained the velocity for (`https://developer.android.com/reference/kotlin/android/view/VelocityTracker` lets you calculate velocities for a specific axis. Use the axis for which you calculated velocity). You can use `https://developer.android.com/reference/kotlin/android/view/InputDevice#getMotionRanges()` to get all the `https://developer.android.com/reference/kotlin/android/view/InputDevice.MotionRange`s for the `https://developer.android.com/reference/kotlin/android/view/InputDevice`, from which you can derive all the valid axes for the device.

**source** : use `https://developer.android.com/reference/kotlin/android/view/MotionEvent#getSource()` if calling this method in response to a `https://developer.android.com/reference/kotlin/android/view/MotionEvent`. Otherwise, use a valid source for the `https://developer.android.com/reference/kotlin/android/view/InputDevice`. You can use `https://developer.android.com/reference/kotlin/android/view/InputDevice#getMotionRanges()` to get all the `https://developer.android.com/reference/kotlin/android/view/InputDevice.MotionRange`s for the `https://developer.android.com/reference/kotlin/android/view/InputDevice`, from which you can derive all the valid sources for the device.

This method optimizes calls over multiple input device IDs, so caching the return value of the method is not necessary if you are handling multiple input devices.

| Parameters ||
|---|---|
| `inputDeviceId` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the ID of the `https://developer.android.com/reference/kotlin/android/view/InputDevice` that generated the motion triggering fling. |
| `axis` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the axis on which the motion triggering the fling happened. This axis should be a valid axis that can be reported by the provided input device from the provided input device source. |
| `source` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the input source of the motion causing fling. This source should be a valid source for the `https://developer.android.com/reference/kotlin/android/view/InputDevice` whose ID is `inputDeviceId`. |

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the minimum velocity, in pixels/second, to trigger fling. |

**See Also**

- `https://developer.android.com/reference/kotlin/android/view/InputDevice#getMotionRange(kotlin.Int,%20kotlin.Int)`
- `https://developer.android.com/reference/kotlin/android/view/InputDevice#getMotionRanges()`
- `https://developer.android.com/reference/kotlin/android/view/VelocityTracker#getAxisVelocity(kotlin.Int,%20kotlin.Int)`
- `https://developer.android.com/reference/kotlin/android/view/VelocityTracker#getAxisVelocity(kotlin.Int)`

### getScaledMinimumScalingSpan

Added in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledMinimumScalingSpan(): Int
```

Retrieves the distance in pixels between touches that must be reached for a gesture to be interpreted as scaling. In general, scaling shouldn't start until this distance has been met or surpassed, and scaling should end when the distance in pixels between touches drops below this distance.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | The distance in pixels |

| Exceptions ||
|---|---|
| `java.lang.IllegalStateException` | if this method is called on a ViewConfiguration that was instantiated using a constructor with no Context parameter. |

### getScaledOverflingDistance

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledOverflingDistance(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | The maximum distance a View should overfling by when showing edge effects (in pixels). |

### getScaledOverscrollDistance

Added in [API level 9](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledOverscrollDistance(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | The maximum distance a View should overscroll by when showing edge effects (in pixels). |

### getScaledPagingTouchSlop

Added in [API level 8](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledPagingTouchSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in pixels a touch can wander before we think the user is scrolling a full page |

### getScaledScrollBarSize

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledScrollBarSize(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | The width of the horizontal scrollbar and the height of the vertical scrollbar in pixels |

### getScaledTouchSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledTouchSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in pixels a touch can wander before we think the user is scrolling |

### getScaledVerticalScrollFactor

Added in [API level 26](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledVerticalScrollFactor(): Float
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html` | Amount to scroll in response to a vertical `https://developer.android.com/reference/kotlin/android/view/MotionEvent#ACTION_SCROLL:kotlin.Int` event. Multiply this by the event's axis value to obtain the number of pixels to be scrolled. |

### getScaledWindowTouchSlop

Added in [API level 3](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScaledWindowTouchSlop(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in pixels a touch must be outside the bounds of a window for it to be counted as outside the window for purposes of dismissing that window. |

### getScrollBarFadeDuration

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getScrollBarFadeDuration(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Duration of the fade when scrollbars fade away in milliseconds |

### getScrollBarSize

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getScrollBarSize(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledScrollBarSize()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | The width of the horizontal scrollbar and the height of the vertical scrollbar in dips |

### getScrollDefaultDelay

Added in [API level 5](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getScrollDefaultDelay(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Default delay before the scrollbars fade in milliseconds |

### getScrollFriction

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getScrollFriction(): Float
```

The amount of friction applied to scrolls and flings.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html` | A scalar dimensionless value representing the coefficient of friction. |

### getScrollFrictionAmount

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getScrollFrictionAmount(): Float
```

The amount of friction applied to scrolls and flings.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-float/index.html` | A scalar dimensionless value representing the coefficient of friction. |

### getTapTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getTapTimeout(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds we will wait to see if a touch event is a tap or a scroll. If the user does not move within this interval, it is considered to be a tap. |

### getTapTimeoutMillis

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getTapTimeoutMillis(): Int
```

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds we will wait to see if a touch event is a tap or a scroll. If the user does not move within this interval, it is considered to be a tap. |

### getTextCursorBlinkIntervalMillis

Added in [API level 36.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun getTextCursorBlinkIntervalMillis(): Int
```

Returns the duration in milliseconds of the text cursor blink interval, which is the elapsed time between inversions of the color of the text cursor's pixels.

The value is user-configurable and is constrained to the following range:

- 0 (don't blink)
- \>= 333 (fast blink, the minimum blink interval that is comfortable for photosensitivity)

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | the duration in milliseconds of the text cursor blink interval |

### getTouchSlop

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getTouchSlop(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledTouchSlop()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in dips a touch can wander before we think the user is scrolling |

### getWindowTouchSlop

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  
Deprecated in [API level 15](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getWindowTouchSlop(): Int
```

**Deprecated:** *Use `https://developer.android.com/reference/kotlin/android/view/ViewConfiguration#getScaledWindowTouchSlop()` instead.*

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html` | Distance in dips a touch must be outside the bounds of a window for it to be counted as outside the window for purposes of dismissing that window. |

### getZoomControlsTimeout

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open static fun getZoomControlsTimeout(): Long
```

The amount of time that the zoom controls should be displayed on the screen expressed in milliseconds.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html` | the time the zoom controls should be visible expressed in milliseconds. |

### hasPermanentMenuKey

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun hasPermanentMenuKey(): Boolean
```

Report if the device has a permanent menu key available to the user.

As of Android 3.0, devices may not have a permanent menu key available. Apps should use the action bar to present menu options to users. However, there are some apps where the action bar is inappropriate or undesirable. This method may be used to detect if a menu key is present. If not, applications should provide another on-screen affordance to access functionality.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` | true if a permanent menu key is present, false otherwise. |

### isFocusNavigationEnabled

Added in [API level 37.1](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun isFocusNavigationEnabled(
    inputDeviceId: Int, 
    axis: Int, 
    source: Int
): Boolean
```

Checks whether focus navigation is enabled for a motion generated by a specific input device configuration and motion axis.

When enabled, the input should be used for focus navigation and highlighting in addition to or instead of scrolling. This allows for a touch-free navigation experience.

| Parameters ||
|---|---|
| `inputDeviceId` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the ID of the `https://developer.android.com/reference/kotlin/android/view/InputDevice` that generated the motion. |
| `axis` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the axis of the motion. |
| `source` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html): the input source of the motion. |

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` | `true` if focus navigation is enabled for the given configuration. |

### shouldShowMenuShortcutsWhenKeyboardPresent

Added in [API level 28](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

```
open fun shouldShowMenuShortcutsWhenKeyboardPresent(): Boolean
```

Check if shortcuts should be displayed in menus.

| Return ||
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html` | `True` if shortcuts should be displayed in menus. |