LazyColumn
属性¶
@Composable
fun LazyColumn(
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,
flingBehavior: FlingBehavior? = ScrollableDefaults.flingBehavior(),
userScrollEnabled: Boolean? = true,
content: (@ExtensionFunctionType LazyListScope.() -> Unit)?
): Unit
可滚动的带回收机制的 Column
参数¶
- state 管理列表的状态,可通过这个操作列表滚动
在 LazyListScpoe 中,可以使用以下语句进行操作:
- item 添加单个列表项
- items 添加一组列表项
- itemsIndexed
- stickyHeader 添加粘性头部
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun LazyColumnSample1() {
val items = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
var height: Dp
with(LocalDensity.current) {
height = 300.toDp()
}
val state = rememberLazyListState()
val scope = rememberCoroutineScope()
LazyColumn(state = state) {
stickyHeader {
Text(
"Header", modifier = Modifier
.fillMaxWidth()
.background(Color.White)
.padding(vertical = 10.dp)
.clickable {
scope.launch { state.animateScrollToItem(2) }
}
)
}
items(items) {
Text(
text = "Column Item :$it", modifier = Modifier
.height(height)
)
Divider()
DisposableEffect(Unit) {
Log.d("====", "effect:$it")
onDispose {
Log.e("====", "onDispose:$it")
}
}
}
}
}