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, userScrollEnabled
se 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 LazyRow
y 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