首页 > 解决方案 > 带有多个背景列表的屏幕

问题描述

我正在尝试构建一个包含多个列表的可滚动屏幕。为了实现这一点,我正在做这样的事情:

LazyColumn{
     item{
     }
     items(list of items){
       ...
     }
     item{
     }
     items(list of items){
       ...
     }
     ...
}

我的问题是我想为每个列表设置一个背景,但我不能为“items(list){}”对象设置一个修饰符。我该如何构建这个屏幕?我应该以不同的方式处理整个屏幕构建吗?

标签: androidandroid-jetpack-compose

解决方案


每个项目LazyColumn都是一个单独的视图,同一块中的项目没有父视图:它们只是按数据分组。

您可以将相同的背景应用于 中的每个元素items,如果您在任何填充之前应用它,它将看起来如您所愿:

LazyColumn {
    item {
        Text("title 1")
    }
    items(10) {
        Row(Modifier.fillMaxWidth().background(Color.Blue)) {
            Text("hello $it")
        }
    }
    item {
        Text("title 2")
    }
    items(10) {
        Row(Modifier.fillMaxWidth().background(Color.Green)) {
            Text("hello $it")
        }
    }
}

结果:


推荐阅读