Jetpack Compose - LazyVerticalGrid

Posted 乐翁龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jetpack Compose - LazyVerticalGrid相关的知识,希望对你有一定的参考价值。

Jetpack Compose - LazyVerticalGrid

Compose系列文章,请点原文阅读。原文,是时候学习Compose了!

0、介绍

可以实现网格列表布局。(注意此API暂时还不稳定,有可能更改!)

在alpha 10的版本中,官方提供了该API,目前基于alpha 11版本进行演示。

1、属性一览

【目前基于alpha 11版本】请看该函数:

@Composable fun LazyVerticalGrid(
    cells: GridCells, 
    modifier: Modifier = Modifier, 
    state: LazyListState = rememberLazyListState(), 
    contentPadding: PaddingValues = PaddingValues(0.dp), 
    content: LazyGridScope.() -> Unit
): Unit

属性参数含义:

参数含义
modifier: Modifier = Modifier应用于布局的修饰符
cells: GridCells一个描述单元格如何构成列的类,有关更多信息,请参见GridCells doc。例如:GridCells.Fixed(2),表示均分屏幕宽的的两列表格。
contentPadding: PaddingValues = PaddingValues(0.dp)在整个的内容周围指定的填充距离
content: LazyGridScope.() -> Unit表格布局的每项子级布局

2、使用示例

因为该API还处于试验模式,所以注意注解:@ExperimentalFoundationApi,代码如下:

@ExperimentalFoundationApi
@Composable
fun LazyVerticalGridDemo() 
    val listData = (0..4).toList()

    LazyVerticalGrid(
        cells = GridCells.Fixed(2)
    ) 
        items(listData) 

            Box(
                modifier = Modifier
                    .fillMaxWidth()
                    .height(24.dp)
                    .background(
                        color = when 
                            it % 2 == 0 -> 
                                myBlue
                            
                            else -> 
                                myRed
                            
                        
                    ),
                contentAlignment = Alignment.Center,
            ) 
                Text(
                    text = "列表项:$it"
                )
            
        
    

预览效果如下所示

3、版本更新

  • 暂无

4、未解决问题

暂无,目前该API还处于试验模式,暂时不做过多研究,后期需要了解功能如下:

  • 将某一item项填充满整个宽度,而不进行均分处理
  • 类似原来RecyclerView中的ItemDecoration相关处理

以上是关于Jetpack Compose - LazyVerticalGrid的主要内容,如果未能解决你的问题,请参考以下文章

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose入门

Android Jetpack Compose学习—— Jetpack compose入门

jetpack compose 接收返回参数

什么是Jetpack Compose?带你走进Jetpack Compose~