A wrapper that replaces the content to indicate to the user that a gesture action is available.
@Composable
fun OneHandedGestureButtonSample() {
var label by remember { mutableStateOf("Gesturable Button") }
val onClick = { label = "Clicked/Gestured" }
val interactionSource = remember { MutableInteractionSource() }
val gestureConfig = rememberOneHandedGestureConfiguration(action = GestureAction.Primary)
val indicatorState = remember { OneHandedGestureIndicatorState() }
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
Button(
onClick = onClick,
interactionSource = interactionSource,
modifier =
Modifier.oneHandedGesture(
gestureConfiguration = gestureConfig,
interactionSource = interactionSource,
onGestureLabel = "activate the button",
onGestureAvailable = { indicatorState.isIndicatorActive = true },
onGesture = onClick,
),
) {
OneHandedGestureIndicator(gestureConfig, indicatorState) { Text(label) }
}
}
}