← Back to Foundation
LazyColumnForIndexed
Overview
Code Examples
A vertically scrolling list that only composes and lays out the currently visible items.
It is the variant of LazyColumnFor which provides both index and item as params for itemContent.
See LazyRowForIndexed if you are looking for a horizontally scrolling version.
@param items the backing list of data to display @param modifier the modifier to apply to this layout @param state the state object to be used to control or observe the list's state @param contentPadding a padding around the whole content. This will add padding for the. content after it has been clipped, which is not possible via modifier param. You can use it to add a padding before the first item or after the last one. If you want to add a spacing between each item use verticalArrangement. @param reverseLayout reverse the direction of scrolling and layout, when true
items will be composed from the bottom to the top and LazyListState.firstVisibleItemIndex == 0 will mean we scrolled to the bottom. @param verticalArrangement The vertical arrangement of the layout's children. This allows to add a spacing between items and specify the arrangement of the items when we have not enough of them to fill the whole minimum size. @param horizontalAlignment the horizontal alignment applied to the items @param itemContent emits the UI for an item from items list. It has two params: first one is an index in the items list, and the second one is the item at this index from items list. May emit any number of components, which will be stacked vertically. Note that LazyColumnForIndexed can start scrolling incorrectly if you emit nothing and then lazily recompose with the real content, so even if you load the content asynchronously please reserve some space for the item, for example using Spacer.
Overloads
LazyColumnForIndexed
@Composable
@Deprecated(
"Use LazyColumn instead",
ReplaceWith(
"LazyColumn(modifier, state, contentPadding, horizontalAlignment = " +
"horizontalAlignment) { \n itemsIndexed(items, itemContent) \n }",
"androidx.compose.foundation.lazy.LazyColumn",
"androidx.compose.foundation.lazy.itemsIndexed"
)
)
fun <T> LazyColumnForIndexed(
items: List<T>,
modifier: Modifier = Modifier,
state: LazyListState = rememberLazyListState(),
contentPadding: PaddingValues = PaddingValues(0.dp),
reverseLayout: Boolean = false,
verticalArrangement: Arrangement.Vertical =
if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,
horizontalAlignment: Alignment.Horizontal = Alignment.Start,
itemContent: @Composable LazyItemScope.(index: Int, item: T) -> Unit
)
Parameters
Name | Description |
---|---|
items | the backing list of data to display |
modifier | the modifier to apply to this layout |
state | the state object to be used to control or observe the list's state |
contentPadding | a padding around the whole content. This will add padding for the. content after it has been clipped, which is not possible via modifier param. You can use it to add a padding before the first item or after the last one. If you want to add a spacing between each item use verticalArrangement. |
reverseLayout | reverse the direction of scrolling and layout, when true items will be composed from the bottom to the top and LazyListState.firstVisibleItemIndex == 0 will mean we scrolled to the bottom. |
verticalArrangement | The vertical arrangement of the layout's children. This allows to add a spacing between items and specify the arrangement of the items when we have not enough of them to fill the whole minimum size. |
horizontalAlignment | the horizontal alignment applied to the items |
itemContent | emits the UI for an item from items list. It has two params: first one is an index in the items list, and the second one is the item at this index from items list. May emit any number of components, which will be stacked vertically. Note that LazyColumnForIndexed can start scrolling incorrectly if you emit nothing and then lazily recompose with the real content, so even if you load the content asynchronously please reserve some space for the item, for example using Spacer |