GOOGLE ADS

viernes, 15 de abril de 2022

¿Cómo deshabilitar arrastrar Compose pager después de actualizar a v0.19.0?

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

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...