TransformationSpec
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
measuredHeight | The height in pixels of the item returned during measurement. |
scrollProgress | The 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
scrollProgress | The 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
scrollProgress | The 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
painter | The painter to be transformed. This is the original Painter the component was trying to use. |
shape | The shape of the item's container. |
border | The border of the item's container. |