【问题标题】:LazyColumn with header item in card and remaining items in card卡中带有标题项目和卡中剩余项目的 LazyColumn
【发布时间】:2021-11-28 17:50:44
【问题描述】:

使用 compose LazyColumn 我想要一张卡片作为标题项目,以及一张包含其余项目的卡片。

LazyColumn() {
  item {
    Card() { // header card}
  }

  // would like all items in single card
  Card() { // cannot do this, outside composable function
      items(myItems) { item ->
         // item here
      }
  }
}

这样的事情可能吗?

【问题讨论】:

    标签: android-jetpack-compose lazycolumn


    【解决方案1】:

    如果您只有 2 件商品,那么拥有 LazyColumn 毫无意义。在这种情况下,如果需要,请使用常规的 ColumnverticalScroll

    Column(
        modifier = Modifier
            .fillMaxWidth()
            .verticalScroll(
                rememberScrollState()
            ),
    ) {
        Card(
            modifier = Modifier.fillMaxWidth()
        ) {
            header()
        }
        Card(
            modifier = Modifier.fillMaxWidth()
        ) {
            Column {
                item1()
                item2()
            }
        }
    }
    

    【讨论】:

    • 它根本不是 2 项。它的两张牌,第一张牌是一个物品,第二张牌有很多很多物品。 MyItems 是一个列表。我希望将项目列表放在卡片中。
    • 2 张卡片 = 2 项 - 就 LazyList 而言,这就是最重要的。一张卡是否有很多项与 LazyList 无关。
    • 似乎对 LazyColumn 的一个很大的限制是不能为项目添加周围的视图。这是很常见的情况,我得到了您的解决方案,想知道是否有办法在我的用例中使用 LazyColumn。
    • 在不了解具体的 UX 要求的情况下,我无话可说,但您可以将卡片移动到每个项目(因此每个项目 1 个卡,而不是所有项目 1 个卡),但你原来的不可能。
    • 我同意@Iostintraslation 这是一个很大的限制。如果在这种情况下我们决定只使用垂直可滚动的Column,我想知道性能会发生什么。使用可滚动列与使用 LazyColumn 一样吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多