什么是可组合函数
用于描述 UI 的函数。
什么是可组合函数 是 CoddyKit 上的免费 Android Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Android Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Android Academy 课程共包含 4 节课。
什么是可组合函数
在 Jetpack Compose 中,您通过编写函数来构建屏幕,而不是填充 XML 布局。可组合函数就是一个描述用户界面某个部分的 Kotlin 函数。
您可以使用 @Composable 注解标记这类函数。这会告诉 Compose 编译器,该函数可以生成用户界面,也可以调用其他可组合函数。
@Composable 注解
在函数上方添加 @Composable,即可解锁 Compose 的强大功能。在函数内部,您可以调用其他可组合函数,例如 Text 或 Column。
按照惯例,可组合函数的名称以大写字母开头,就像类名一样。这样可以让您在代码中轻松识别用户界面函数。
@Composable
fun Greeting() {
Text("Hello, Compose!")
}使用 Kotlin 描述用户界面
可组合函数不会返回 View 对象。相反,当 Compose 运行它时,它会以副作用的形式生成用户界面。您只需描述屏幕上应该显示什么。
这称为声明式风格:您声明当前数据对应的用户界面样式,而 Compose 会计算出如何绘制它。
@Composable
fun WelcomeMessage() {
Text("Welcome back!")
}可组合函数调用可组合函数
真正的强大之处在于嵌套。可组合函数可以调用其他可组合函数,让您能够用小型、可复用的部分构建复杂屏幕。
这里,父可组合函数调用子可组合函数。Compose 会从上到下运行它们,并排列生成的用户界面。
@Composable
fun Header() {
Text("My App")
}
@Composable
fun Screen() {
Header()
}没有返回值的函数
大多数可组合函数返回 Unit,也就是说,它们不会返回有用的内容。它们的任务是生成用户界面,而不是返回一个值。
因此,您调用可组合函数是为了让它影响屏幕,而不是获取一个结果。这与普通函数有所不同,但您很快就会习惯。
@Composable
fun Footer() {
Text("\u00A9 2024 CoddyKit")
}将数据作为参数传入
可组合函数可以接收参数,就像普通 Kotlin 函数一样。这样,同一个可组合函数就能显示不同的数据。
这里,Greeting 接收一个 name,并显示它。传入数据可以让您的可组合函数在整个应用中更加灵活且易于复用。
@Composable
fun Greeting(name: String) {
Text("Hello, " + name + "!")
}复用可组合函数
由于可组合函数本质上是函数,因此您可以使用不同参数多次调用同一个函数。每次调用都会生成一份独立的用户界面。
这就是避免重复编写的方法:只编写一次用户界面,然后在需要的地方复用它。
@Composable
fun NameList() {
Greeting("Ada")
Greeting("Linus")
}可组合函数位于何处
您可以在 Android activity 中使用 setContent 放置可组合函数。该代码块是 Compose 接管屏幕的入口。
在 setContent 中调用顶层可组合函数,它生成的所有内容都会成为应用的用户界面。
setContent {
Greeting("World")
}重组基础
当可组合函数读取的数据发生变化时,Compose 会重新运行该函数来更新屏幕。这种重新运行称为重组。
您不需要手动更新用户界面。只需改变数据,Compose 就会自动重组受影响的可组合函数。这可以让屏幕与状态保持同步。
让可组合函数保持简洁
一个好习惯是让每个可组合函数只负责一项明确的工作。小而专注的可组合函数更容易阅读、测试和复用。
如果函数变得太大,请将其拆分为更小的可组合函数,然后组合调用它们。未来的您会感谢现在的这个决定。
@Composable
fun ProfileHeader(name: String) {
Text(name)
}您将看到的导入
可组合函数来自 Compose 库。您经常会导入 androidx.compose.runtime.Composable 作为注解,并导入 androidx.compose.material3.Text 用于显示文本。
Android Studio 通常会为您添加这些导入。了解它们的来源,有助于您处理缺少导入的问题。
import androidx.compose.runtime.Composable
import androidx.compose.material3.Text快速检查
让我们复习一下,是什么使一个函数成为可组合函数。
回顾
您已经了解到,可组合函数是使用 @Composable 标记、以声明式方式描述用户界面的 Kotlin 函数。可组合函数可以接收参数、调用其他可组合函数,并且名称以大写字母开头。
它们返回 Unit,生成用户界面而不是返回值。当数据发生变化时,Compose 会重组它们来更新屏幕。接下来,您将显示实际文本,并使用 Column 垂直排列视图。
常见问题解答
「什么是可组合函数」课时是免费的吗?
是的 — 「什么是可组合函数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Android Academy 课程的其余内容,请升级到 CoddyKit PRO。 Android Academy 课程共包含 4 节课。
「什么是可组合函数」这节课中我会学到什么?
用于描述 UI 的函数。 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Android Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Android Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「什么是可组合函数」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Android Academy 课中编写并运行代码吗?
能。每节 Android Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 什么是可组合函数
- Text 与 Column 基础
- 预览您的 UI
- 构建个人资料卡片