0Pricing
Jetpack Compose Academy · 课时

LazyColumn 与可滚动 Column

了解惰性列表为何能够扩展。

LazyColumn 与可滚动 Column 是 CoddyKit 上的免费 Jetpack Compose Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Jetpack Compose Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Jetpack Compose Academy 课程共包含 4 节课。

本课时的部分内容尚未翻译,以英文显示。

The Long-List Problem

When a list has hundreds of rows, you can't draw them all at once. You need a list that only builds what's actually visible on screen.

A Plain Column Builds Everything

A regular Column composes every single child immediately, even rows far below the screen. With long data, that wastes memory and time.

Column {
    items.forEach { Text(it) }
}

Column Needs verticalScroll

A plain Column doesn't even scroll on its own. You must add a verticalScroll modifier just to move past the screen edge.

Column(Modifier.verticalScroll(rememberScrollState())) {
    items.forEach { Text(it) }
}

Meet LazyColumn

A LazyColumn is the scrollable list built for big data. It composes rows on demand as you scroll, so the cost stays small. 🚀

LazyColumn {
    // items go here
}

Lazy Means On Demand

"Lazy" means a row is only created when it scrolls into view. Off-screen items simply don't exist yet, which keeps things fast and light.

Reuse, Not Rebuild

As rows leave the top, LazyColumn recycles them for new rows entering the bottom. A few dozen rows can serve thousands of items.

The items Block

Inside LazyColumn you describe content with an items block instead of a normal loop. Compose decides which ones to actually build.

LazyColumn {
    items(names) { name ->
        Text(name)
    }
}

Scrolling Is Built In

LazyColumn scrolls by default, so you never wrap it in verticalScroll. Adding one would actually cause a crash.

When a Column Is Fine

For a few fixed rows that all fit on screen, a plain Column is simpler and perfect. Reach for LazyColumn only when the list can grow.

Never Nest the Same Direction

Avoid putting a LazyColumn inside a vertically scrolling Column. The two scroll directions clash, and Compose can't measure the height.

Performance Is the Payoff

The big win is performance: smooth scrolling and steady memory no matter how long the data gets. That's why lazy lists scale.

Quick Check

Time to test which list to reach for.

Recap: Lazy Wins for Big Lists

A Column builds everything up front and needs verticalScroll; a LazyColumn builds rows on demand, recycles them, and scales effortlessly. 🎉

常见问题解答

「LazyColumn 与可滚动 Column」课时是免费的吗?

是的 — 「LazyColumn 与可滚动 Column」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Jetpack Compose Academy 课程的其余内容,请升级到 CoddyKit PRO。 Jetpack Compose Academy 课程共包含 4 节课。

「LazyColumn 与可滚动 Column」这节课中我会学到什么?

了解惰性列表为何能够扩展。 你通过在浏览器中直接运行的动手代码来练习 Jetpack Compose Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Jetpack Compose Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Jetpack Compose Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「LazyColumn 与可滚动 Column」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Jetpack Compose Academy 课中编写并运行代码吗?

能。每节 Jetpack Compose Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. LazyColumn 与可滚动 Column
  2. items 与 itemsIndexed
  3. 稳定快速列表的键
  4. 粘性页眉与分区列表
← 返回 Jetpack Compose Academy