TransformationSpec

Interface

Android
public interface TransformationSpec

Defines visual transformations on the items of a TransformingLazyColumn.

When using this API, users need to make similar changes between all of the functions. For example, if getTransformedHeight returns half of the size of the item, then transformation functions should do the same, scaling or cropping the item.

getTransformedHeight is called first, then the painter would be created and then container and content transformations are applied.

This shows how to create a custom transformation spec for the TransformingLazyColumn.

This shows how to apply the TransformationSpec to custom component inside TransformingLazyColumn.

Functions

public fun getTransformedHeight(
        measuredHeight: Int,
        scrollProgress: TransformingLazyColumnItemScrollProgress,
    ): Int

Calculates the transformed height to be passed into TransformingLazyColumnItemScope.transformedHeight based on the parameters for the spec.

Parameters

measuredHeightThe height in pixels of the item returned during measurement.
scrollProgressThe scroll progress of the item.
public fun GraphicsLayerScope.applyContentTransformation(
        scrollProgress: TransformingLazyColumnItemScrollProgress
    )

Visual transformations to be applied to the content of the item as it scrolls.

Parameters

scrollProgressThe scroll progress of the item.
public fun GraphicsLayerScope.applyContainerTransformation(
        scrollProgress: TransformingLazyColumnItemScrollProgress
    )

Visual transformations to be applied to the container of the item as it scrolls.

Parameters

scrollProgressThe scroll progress of the item.
public fun TransformedContainerPainterScope.createTransformedContainerPainter(
        painter: Painter,
        shape: Shape,
        border: BorderStroke?,
    ): Painter

Returns a new painter to be used instead of painter which should react on a transformation.

Parameters

painterThe painter to be transformed. This is the original Painter the component was trying to use.
shapeThe shape of the item's container.
borderThe border of the item's container.