LazyItemScope
-
Cmn
@LazyScopeMarker
interface LazyItemScope
Receiver scope being used by the item content parameter of LazyColumn/Row.
Summary
Public functions |
||
|---|---|---|
open Modifier |
Modifier.animateItem(This modifier animates the item appearance (fade in), disappearance (fade out) and placement changes (such as an item reordering). |
Cmn
|
Modifier |
Modifier.fillParentMaxHeight(Have the content fill the |
Cmn
|
Modifier |
Modifier.fillParentMaxSize(Have the content fill the |
Cmn
|
Modifier |
Modifier.fillParentMaxWidth(Have the content fill the |
Cmn
|
Public functions
animateItem
open fun Modifier.animateItem(
fadeInSpec: FiniteAnimationSpec<Float>? = spring(stiffness = Spring.StiffnessMediumLow),
placementSpec: FiniteAnimationSpec<IntOffset>? = spring( stiffness = Spring.StiffnessMediumLow, visibilityThreshold = IntOffset.VisibilityThreshold, ),
fadeOutSpec: FiniteAnimationSpec<Float>? = spring(stiffness = Spring.StiffnessMediumLow)
): Modifier
This modifier animates the item appearance (fade in), disappearance (fade out) and placement changes (such as an item reordering).
You should also provide a key via LazyListScope.item/LazyListScope.items for this modifier to enable animations.
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.material.Button import androidx.compose.material.Text import androidx.compose.runtime.State import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier var list by remember { mutableStateOf(listOf("1", "2", "3")) } Column { Button(onClick = { list = list + "${list.count() + 1}" }) { Text("Add new item") } Button(onClick = { list = list.shuffled() }) { Text("Shuffle") } LazyColumn { items(list, key = { it }) { Text("Item $it", Modifier.animateItem()) } } }
| Parameters | |
|---|---|
fadeInSpec: FiniteAnimationSpec<Float>? = spring(stiffness = Spring.StiffnessMediumLow) |
an animation specs to use for animating the item appearance. When null is provided the item will be appearing without animations. |
placementSpec: FiniteAnimationSpec<IntOffset>? = spring(
stiffness = Spring.StiffnessMediumLow,
visibilityThreshold = IntOffset.VisibilityThreshold,
) |
an animation specs that will be used to animate the item placement. Aside from item reordering all other position changes caused by events like arrangement or alignment changes will also be animated. When null is provided no animations will happen. |
fadeOutSpec: FiniteAnimationSpec<Float>? = spring(stiffness = Spring.StiffnessMediumLow) |
an animation specs to use for animating the item disappearance. When null is provided the item will be disappearance without animations. |
fillParentMaxHeight
fun Modifier.fillParentMaxHeight(
fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): Modifier
Have the content fill the Constraints.maxHeight of the incoming measurement constraints by setting the minimum height to be equal to the maximum height multiplied by fraction. Note that, by default, the fraction is 1, so the modifier will make the content fill the whole parent height. fraction must be between 0 and 1.
Regular Modifier.fillMaxHeight can't work inside the scrolling vertically layouts as the items are measured with Constraints.Infinity as the constraints for the main axis.
fillParentMaxSize
fun Modifier.fillParentMaxSize(
fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): Modifier
Have the content fill the Constraints.maxWidth and Constraints.maxHeight of the parent measurement constraints by setting the minimum width to be equal to the maximum width multiplied by fraction and the minimum height to be equal to the maximum height multiplied by fraction. Note that, by default, the fraction is 1, so the modifier will make the content fill the whole available space. fraction must be between 0 and 1.
Regular Modifier.fillMaxSize can't work inside the scrolling layouts as the items are measured with Constraints.Infinity as the constraints for the main axis.
fillParentMaxWidth
fun Modifier.fillParentMaxWidth(
fraction: @FloatRange(from = 0.0, to = 1.0) Float = 1.0f
): Modifier
Have the content fill the Constraints.maxWidth of the parent measurement constraints by setting the minimum width to be equal to the maximum width multiplied by fraction. Note that, by default, the fraction is 1, so the modifier will make the content fill the whole parent width. fraction must be between 0 and 1.
Regular Modifier.fillMaxWidth can't work inside the scrolling horizontally layouts as the items are measured with Constraints.Infinity as the constraints for the main axis.