Gab*_*tti 8

2021 年 3 月更新:从1.0.0-beta01

例如:

@Composable
fun LazyRowItemsDemo() {
    LazyRow {
        items((1..1000).toList()) {
            Text(text = "Item $it")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Ana*_*har 7

jetnews示例项目list/recyclerview他们正在使用VerticalScrollerColumn和使用forEach填充项下面@Composable的功能是例子

@Composable
private fun TabWithTopics(tabname: String, topics: List<String>) {
    VerticalScroller {
        Column {
            HeightSpacer(16.dp)
            topics.forEach { topic ->
                TopicItem(
                    getTopicKey(
                        tabname,
                        "- ",
                        topic
                    ), topic
                )
                TopicDivider()
            }
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

对于类和方法,请检查此链接

https://github.com/android/compose-samples/blob/master/JetNews/app/src/main/java/com/example/jetnews/ui/interests/InterestsScreen.kt

有关更多信息,您可以jetnews从这里的链接下载/克隆示例

https://github.com/android/compose-samples/tree/master/JetNews

对于最新的 Jetpack alpha 版本,请更新以下内容:

@Composable
fun LazyRowItemsDemo() {
    LazyRowFor(items = (1..1000).toList()) {
        Text(text = "Item $it")
    }
}
Run Code Online (Sandbox Code Playgroud)
  1. LazyColumnFor用于垂直列表
  2. LazyRowFor用于水平列表

希望对你有帮助。

  • 是的。那回收呢。 (3认同)

pio*_*hen 7

JetNews 应用程序的示例具有静态数据。值得一提的是,根据最近的 Google 演示(尤其是从 18:30 开始),我们应该考虑ScrollingList,它用于具有未定义元素数量的列表(例如从网络下载),传统上由RecyclerView. 然后,它应该是这样的:

@Composable
fun NewsFeed(stories: List<StoryData>) {
  ScrollingList(stories) { story ->
    StoryWidget(story)
  }
}
Run Code Online (Sandbox Code Playgroud)

或者我们可以用LiveData或 RxJava Observable/做类似的事情Flowable

@Composable
fun NewsFeed(stories: LiveData<List<StoryData>>) {
  ScrollingList(stories.observe()) { story ->
    StoryWidget(story)
  }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们将StoryWidget在迭代的每一步中重用(或我们选择的任何其他小部件),并通过 lambda 表达式动态发出数据。

  • @LucasSousa你是对的。`ScrollingList` 不是元素。我谷歌了一下,发现 `ScrollingList` 现在不可用。它将在下一个版本中提供。所以,我们必须等待。([此处](https://blog.karumi.com/android-jetpack-compose-review/)) (2认同)