Pointer input in Compose
Stay organized with collections
Save and categorize content based on your preferences.
Compose provides a variety of APIs to help you detect gestures that are
generated from user interactions. The APIs cover a wide range of use cases:
Some of them are high-level and designed to cover the most commonly used
gestures. For example, the
clickable
modifier allows easy
detection of a click, and it also provides accessibility features and
displays visual indicators when tapped (such as ripples).
There are also less commonly used gesture detectors that offer more
flexibility on a lower level, like
PointerInputScope.detectTapGestures
or
PointerInputScope.detectDragGestures
but don't include the extra features.
Learn more about pointer input on the following pages:
- Understand gestures gives an explanation of the core concepts playing
a role when handling pointer input.
- Tap and press expands on single pointer, single position events.
- Scroll explains how to implement scrolling containers, and handles
interoperability concerns.
- Drag, swipe, and fling shows different types of dragging of a single
pointer.
- Multi-touch dives into situations where more than one pointer is used.
Recommended for you
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-20 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-20 UTC."],[],[],null,["# Pointer input in Compose\n\nCompose provides a variety of APIs to help you detect gestures that are\ngenerated from user interactions. The APIs cover a wide range of use cases:\n\n- Some of them are **high-level** and designed to cover the most commonly used\n gestures. For example, the\n [`clickable`](/reference/kotlin/androidx/compose/foundation/package-summary#(androidx.compose.ui.Modifier).clickable(kotlin.Boolean,kotlin.String,androidx.compose.ui.semantics.Role,kotlin.Function0))\n modifier allows easy\n detection of a click, and it also provides accessibility features and\n displays visual indicators when tapped (such as ripples).\n\n- There are also less commonly used gesture detectors that offer more\n flexibility on a **lower level** , like\n [`PointerInputScope.detectTapGestures`](/reference/kotlin/androidx/compose/foundation/gestures/package-summary#(androidx.compose.ui.input.pointer.PointerInputScope).detectTapGestures(kotlin.Function1,kotlin.Function1,kotlin.coroutines.SuspendFunction2,kotlin.Function1)) or\n [`PointerInputScope.detectDragGestures`](/reference/kotlin/androidx/compose/foundation/gestures/package-summary#(androidx.compose.ui.input.pointer.PointerInputScope).detectDragGestures(kotlin.Function1,kotlin.Function0,kotlin.Function0,kotlin.Function2))\n but don't include the extra features.\n\nLearn more about pointer input on the following pages:\n\n- [Understand gestures](/develop/ui/compose/touch-input/pointer-input/understand-gestures) gives an explanation of the core concepts playing a role when handling pointer input.\n- [Tap and press](/develop/ui/compose/touch-input/pointer-input/tap-and-press) expands on single pointer, single position events.\n- [Scroll](/develop/ui/compose/touch-input/pointer-input/scroll) explains how to implement scrolling containers, and handles interoperability concerns.\n- [Drag, swipe, and fling](/develop/ui/compose/touch-input/pointer-input/drag-swipe-fling) shows different types of dragging of a single pointer.\n- [Multi-touch](/develop/ui/compose/touch-input/pointer-input/multi-touch) dives into situations where more than one pointer is used.\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [Enable user interactions](/develop/ui/compose/text/user-interactions)\n- [Semantics in Compose](/develop/ui/compose/semantics)\n- [Compose modifiers](/develop/ui/compose/modifiers)"]]