唯客微博客

专注于计算机,嵌入式领域的技术

0%

Jetpack Compose组件-惰性列表(LazyColumn.LazyRow)

Jetpack Compose组件-惰性列表(LazyColumn.LazyRow)

惰性列(LazyColumn)

在 LazyListScpoe 中,可以使用以下语句进行操作:

  • item 添加单个列表项
  • items 添加一组列表项
  • itemsIndexed 添加一组列表项
  • stickyHeader 添加粘性头部
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Composable
fun LazyColumn(
// 修饰符
modifier: Modifier = Modifier,
// 列表状态
state: LazyListState = rememberLazyListState(),
// 内容padding
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: LazyListScope.() -> Unit
): Unit

惰性行(LazyRow)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Composable
fun LazyRow(
// 修饰符
modifier: Modifier = Modifier,
// 列表状态
state: LazyListState = rememberLazyListState(),
// 内容padding
contentPadding: PaddingValues = PaddingValues(0.dp),
// 反转滚动和布局方向
reverseLayout: Boolean = false,
// 水平排列
horizontalArrangement: Arrangement.Horizontal = if (!reverseLayout) Arrangement.Start else Arrangement.End,
// 垂直排列
verticalAlignment: Alignment.Vertical = Alignment.Top,
// 甩动偏好
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
// 禁止用户滚动,但可以通过编程方式滚动
userScrollEnabled: Boolean = true,
content: LazyListScope.() -> Unit
): Unit

惰性垂直网格(LazyVerticalGrid)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Composable
fun LazyVerticalGrid(
// 每行个数
columns: GridCells,
// 修饰符
modifier: Modifier = Modifier,
// 网格状态
state: LazyGridState = rememberLazyGridState(),
// 内容padding
contentPadding: PaddingValues = PaddingValues(0.dp),
// 反转滚动和布局方向
reverseLayout: Boolean = false,
// 垂直排列
verticalArrangement: Arrangement.Vertical = if (!reverseLayout) Arrangement.Top else Arrangement.Bottom,
// 水平排列
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
// 甩动偏好
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
// 禁止用户滚动,但可以通过编程方式滚动
userScrollEnabled: Boolean = true,
content: LazyGridScope.() -> Unit
): Unit

惰性水平网格(LazyHorizontalGrid)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Composable
fun LazyHorizontalGrid(
// 每列个数
rows: GridCells,
// 修饰符
modifier: Modifier = Modifier,
// 网格状态
state: LazyGridState = rememberLazyGridState(),
// 内容padding
contentPadding: PaddingValues = PaddingValues(0.dp),
// 反转滚动和布局方向
reverseLayout: Boolean = false,
// 水平排列
horizontalArrangement: Arrangement.Horizontal = if (!reverseLayout) Arrangement.Start else Arrangement.End,
// 垂直排列
verticalArrangement: Arrangement.Vertical = Arrangement.Top,
// 甩动偏好
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
// 禁止用户滚动,但可以通过编程方式滚动
userScrollEnabled: Boolean = true,
content: LazyGridScope.() -> Unit
): Unit

惰性垂直流式网格(LazyVerticalStaggeredGrid)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@ExperimentalFoundationApi
@Composable
fun LazyVerticalStaggeredGrid(
// 每行个数
columns: StaggeredGridCells,
// 修饰符
modifier: Modifier = Modifier,
// 网格状态
state: LazyStaggeredGridState = rememberLazyStaggeredGridState(),
// 内容padding
contentPadding: PaddingValues = PaddingValues(0.dp),
// 垂直排列
verticalArrangement: Arrangement.Vertical = Arrangement.spacedBy(0.dp),
// 水平排列
horizontalArrangement: Arrangement.Horizontal = Arrangement.spacedBy(0.dp),
// 甩动偏好
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
// 禁止用户滚动,但可以通过编程方式滚动
userScrollEnabled: Boolean = true,
content: LazyStaggeredGridScope.() -> Unit
): Unit

惰性水平流式网格(LazyHorizontalStaggeredGrid)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@ExperimentalFoundationApi
@Composable
fun LazyHorizontalStaggeredGrid(
// 每列个数
rows: StaggeredGridCells,
// 修饰符
modifier: Modifier = Modifier,
// 网格状态
state: LazyStaggeredGridState = rememberLazyStaggeredGridState(),
// 内容padding
contentPadding: PaddingValues = PaddingValues(0.dp),
// 垂直排列
verticalArrangement: Arrangement.Vertical = Arrangement.spacedBy(0.dp),
// 水平排列
horizontalArrangement: Arrangement.Horizontal = Arrangement.spacedBy(0.dp),
// 甩动偏好
flingBehavior: FlingBehavior = ScrollableDefaults.flingBehavior(),
// 禁止用户滚动,但可以通过编程方式滚动
userScrollEnabled: Boolean = true,
content: LazyStaggeredGridScope.() -> Unit
): Unit

惰性布局(LazyLayout)

1
2
3
4
5
6
7
8
9
10
@ExperimentalFoundationApi
@Composable
fun LazyLayout(
itemProvider: LazyLayoutItemProvider,
// 修饰符
modifier: Modifier = Modifier,
prefetchState: LazyLayoutPrefetchState? = null,
// 测量策略
measurePolicy: LazyLayoutMeasureScope.(Constraints) -> MeasureResult
): Unit
-------------本文结束感谢您的阅读-------------

本文标题:Jetpack Compose组件-惰性列表(LazyColumn.LazyRow)

文章作者:Vinx

发布时间:2023年01月17日 - 10:27

最后更新:2023年09月19日 - 08:42

原始链接:https://blog.vinkvin.com/post/81/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。