0Pricing
Android Academy · 课时

什么是 Jetpack Compose

了解 Android 中的声明式用户界面

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

什么是 Jetpack Compose

Jetpack Compose 是 Android 用于构建原生用户界面的现代工具包。您无需编写 XML 布局文件,而是直接在 Kotlin 代码中描述用户界面。

Compose 是声明式的:您告诉它在给定状态下屏幕应该呈现什么样子,它会自行确定如何绘制和更新界面。

传统方式:XML 视图

传统上,一个 Android 屏幕需要两部分:

  • 描述控件的 XML 布局文件。
  • 使用 findViewById 查找并修改这些视图的 Kotlin/Java 代码。

保持 XML 和代码同步既繁琐又容易出错。

<!-- res/layout/activity_main.xml -->
<TextView
    android:id="@+id/greeting"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

命令式与声明式

使用 XML 视图时,您编写的是命令式代码:获取一个视图,然后逐步修改它。

使用 Compose 时,您编写的是声明式代码:将最终结果描述为数据的函数。数据发生变化时,Compose 会自动重绘所需的内容。

// Imperative (old views)
val tv = findViewById<TextView>(R.id.greeting)
tv.text = "Hello"
tv.visibility = View.VISIBLE

可组合函数

Compose 的构建块是可组合函数:一种带有 @Composable 注解、能够生成用户界面的普通 Kotlin 函数。

可组合函数可以调用其他可组合函数,让您通过小型可复用部件构建屏幕。

@Composable
fun Greeting(name: String) {
    Text(text = "Hello, $name!")
}

不再使用 findViewById

Compose 中没有 findViewById,也没有视图 ID。用户界面就是函数调用本身。要显示不同的文本,只需传入不同的参数,让 Compose 重新组合即可。

@Composable
fun Screen() {
    Greeting(name = "Ada")
    Greeting(name = "Linus")
}

作为状态函数的用户界面

一个核心理念是:UI = f(state)。屏幕是可组合函数根据当前状态生成的输出。改变状态后,同一个函数就会生成新的用户界面。

这样可以让用户界面更可预测,也更容易理解和维护。

一切都是 Kotlin

由于可组合函数是 Kotlin 函数,您可以使用循环、条件语句和变量来构建用户界面。无需特殊的模板语言。

@Composable
fun Items(names: List<String>) {
    for (n in names) {
        Text(text = n)
    }
}

更少的样板代码

Compose 移除了大量胶水代码。无需 XML 膨胀,无需为简单列表编写适配器,也无需手动连接布局与逻辑。

结果是:更少的文件和更少的错误。

与视图系统互操作

您不必重写整个应用。Compose 可以与旧版 View 系统互操作。您可以将 Compose 嵌入现有的 XML 屏幕,也可以将 View 嵌入 Compose。

这样,团队就能逐步完成迁移。

您需要什么

要使用 Compose,您需要:

  • 较新版本的 Android Studio。
  • Gradle 文件中的 Compose 依赖项。
  • 调用 setContent { } 以承载可组合函数的活动。

一个小型屏幕

下面是一个完整的最小 Compose 屏幕。setContent 是从 Android Activity 进入 Compose 世界的桥梁。

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Greeting(name = "World")
        }
    }
}

快速检查

哪一项最准确地描述了 Jetpack Compose?

回顾

您已经了解到,Jetpack Compose 是一个声明式、以 Kotlin 为核心的用户界面工具包。主要理念包括:

  • 用户界面由 @Composable 函数组成。
  • 无需 XML,也无需 findViewById。
  • UI = f(state) — 改变状态,Compose 就会重绘界面。

常见问题解答

「什么是 Jetpack Compose」课时是免费的吗?

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

「什么是 Jetpack Compose」这节课中我会学到什么?

了解 Android 中的声明式用户界面 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Android Academy 需要有经验吗?

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

「什么是 Jetpack Compose」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. 什么是 Jetpack Compose
  2. 您的第一个可组合函数
  3. 文本、图像和按钮
  4. 预览和热重载
← 返回 Android Academy