Como título, el diseño de Android Compose Pager eliminó dragEnabled después de v0.19.0. ¿Hay alguna otra forma de desactivar el localizador de arrastre?
Guía: https://google.github.io/accompanist/pager/
Solución del problema
Desde Accompanist 0.24.1-alpha, que requiere Compose versión 1.2.0-alpha02 o posterior, userScrollEnabledse agregó el argumento:
HorizontalPager(
userScrollEnabled = false
) {
}
Requiere Compose 1.2.0-alpha01 porque en esta versión se agregó la misma funcionalidad a LazyColumn/ LazyRow, que se encuentra debajo del Buscapersonas acompañante.
Si usa Compose 1.1.0 o anterior, puede usar la siguiente solución:
Desde la versión 0.19.0, el localizador de acompañamiento se ha reescrito para basarse en LazyRowy LazyColumn.
Las vistas diferidas no admiten la desactivación del desplazamiento por ahora, puede destacar este problema para llamar más la atención sobre este problema y seguir las actualizaciones.
Here's a workaround for now:
private val VerticalScrollConsumer = object: NestedScrollConnection {
override fun onPreScroll(available: Offset, source: NestedScrollSource) = available.copy(x = 0f)
override suspend fun onPreFling(available: Velocity) = available.copy(x = 0f)
}
private val HorizontalScrollConsumer = object: NestedScrollConnection {
override fun onPreScroll(available: Offset, source: NestedScrollSource) = available.copy(y = 0f)
override suspend fun onPreFling(available: Velocity) = available.copy(y = 0f)
}
fun Modifier.disabledVerticalPointerInputScroll(disabled: Boolean = true) =
if (disabled) this.nestedScroll(VerticalScrollConsumer) else this
fun Modifier.disabledHorizontalPointerInputScroll(disabled: Boolean = true) =
if (disabled) this.nestedScroll(HorizontalScrollConsumer) else this
Uso:
HorizontalPager(
count = 10,
modifier = Modifier.disabledHorizontalPointerInputScroll()
) {
//...
}
No hay comentarios:
Publicar un comentario