Estoy trabajando en un diseño personalizado que presenta una línea de tiempo de un día en Jetpack Compose usando Layout composable. El resultado se parece al Calenar de Google y el código es similar al descrito en ese gran tutorial: https://danielrampelt.com/blog/jetpack-compose-custom-schedule-layout-part-1/
Sin embargo, mi pregunta es: ¿Cómo podría recibir la posición (x, y) de un clic dentro de un Layout componible? Podría recibir fácilmente los clics realizados en los elementos secundarios del Layout al agregar clickable modificador en el que se puede hacer clic a los placeables . Sin embargo, mi pregunta es cómo recibo la posición de los clics realizados en el espacio de diseño entre los niños.
(ese sería el espacio entre citas en la línea de tiempo del día según el ejemplo mencionado anteriormente. Y en ese caso necesito la posición del clic para obtener información sobre la hora en que hizo clic el usuario)
Intenté agregar el modificador .clickable en todo el Layout componible, pero no recibo la posición (x, y) del clic dentro del diseño en onClick lambda (su tipo es () -> Unit )
Puede usar detectTapGestures , devolverá el desplazamiento:
Modifier.pointerInput(Unit) { detectTapGestures { offset -> } } Si necesita agregar un efecto dominó a este gesto, consulte esta respuesta . En su caso, es posible que necesite una matriz de MutableInteractionSource para cada vista secundaria y una para la vista principal.
Puede encontrar más gestos personalizados en la documentación de Compose.