The Android Arsenal – Vistas del reciclador

¿Qué es Flinger?

Flinger es un complemento creado anteriormente hecho jetpack compose lo que ayudará al desarrollador a cambiar el comportamiento de LazyList. Esta biblioteca ayudará a los desarrolladores a cambiar los comportamientos de aventuras mucho más fácilmente sin tener que profundizar. Aquí hay un prototipo de Flinger:

Gradle

Agregue lo siguiente al archivo root build.gradle de su proyecto

repositories {
    maven {
        url "https://jitpack.io"
    }
}

Agregue lo siguiente al archivo build.gradle de su proyecto

dependencies {
    implementation 'com.github.iamjosephmj:flinger:1.0.3'
}

Lo esencial

En el lanzamiento de Jetpack compose, al menos algunos de ustedes pueden haber pensado si le trajeron el antiguo comportamiento de desplazamiento. La respuesta es sí, habían traído al viejo Overscroller comportamiento en la última composición. El Overscroller es el componente responsable de las aventuras en ScrollView / RecyclerViews en Android. Si profundizamos en la implementación de Overscroller, puede ver que Android usa un conjunto fijo de valores para que las aventuras se vean casi similares en diferentes dispositivos. La idea detrás de la creación de esta biblioteca es que los desarrolladores tengan acceso completo a todos los parámetros internos que gobiernan el comportamiento de la aventura. Esta biblioteca se puede integrar fácilmente con la LazyColumns , LazyRows , LazyLists que se proporciona marcando.

Uso

Consulte el proyecto de muestra a continuación para obtener más información sobre la implementación.

LazyColumn(
    flingBehavior = flingBehavior(

        ScrollViewConfiguration.Builder()
            /*
             * This variable manages the friction to the scrolls in the LazyColumn
             */
            .scrollViewFriction(0.008f)

            /*
             * This is the absolute value of a velocity threshold, below which the
             * animation is considered finished.
             */
            .absVelocityThreshold(0f)

            /*
             * Gravitational obstruction to the scroll.
             */
            .gravitationalForce(9.80665f)

            /*
             * Scroll Inches per meter
             */
            .inchesPerMeter(39.37f)

            /*
             * Rate of deceleration of the scrollView.
             */
            .decelerationRate((ln(0.78) / ln(0.9)).toFloat())

            /*
             * Friction at the time of deceleration.
             */
            .decelerationFriction(0.09f)

            /*
             * Inflection is the place where the start and end tension lines cross each other.
             */
            .splineInflection(0.1f)

            /*
             * Spline's start tension.
             */
            .splineStartTension(0.1f)

            /*
             * Spline's end tension.
             */
            .splineEndTension(1.0f)

            /*
             * number of sampling points in the spline
             */
            .numberOfSplinePoints(100)

            // builder pattern.
            .build(),
    )
)
{
    // Columns/Rows
}

Comportamientos de stock

Si no se siente cómodo modificando valores, le proporcionamos algunos métodos predefinidos que pueden utilizarse para incorporar el comportamiento a su proyecto, puede consultar StockFlingBehaviours.kt

Comportamientos personalizados

Si estás interesado en diseñar tus propios comportamientos para los Flings, puedes probar varias posibilidades en el Flinger app

Contribución futura, problemas o ideas

Si parte de Flinger no funciona correctamente, asegúrese de informar un problema con Github. En el problema, proporcione tantos detalles como sea posible. Esto podría incluir código de muestra o los pasos exactos que siguió para que todos puedan reproducir el problema. Los proyectos de muestra son siempre la mejor manera :). ¡Esto hace que sea fácil para nuestros desarrolladores o alguien de la comunidad de código abierto comenzar!

Si tiene una idea para una función, envíe un problema con una solicitud de función o envíe una solicitud de extracción y trabajaremos con usted para fusionarla.

Pautas de contribución

¡Las contribuciones son más que bienvenidas!

  • Debe asegurarse de que todas las pruebas funcionen correctamente.
  • Deberías hacer un PR a develop rama
  • Cualquiera puede contribuir con sus comportamientos StockFlingBehaviours.kt .
  • Antes de aumentar un PR, asegúrese de que su código no haya tenido un problema con el analizador de pelusas de Android Studio.

Comparta y destaque el repositorio para mantenerme motivado.

.

Compruebe también

en vivo desde Droidcon, incluida la mayor actualización de Gemini en Android Studio y más lanzamientos del SDK de Android.

Acabamos de lanzar nuestro episodio de otoño de #TheAndroidShow en YouTube etcétera desarrollador.android.comy esta vez …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *