0Pricing
Jetpack Compose Academy · Урок

Слоты состояния Compose и лямбды содержимого

Делайте компоненты гибкими с помощью API слотов.

«Слоты состояния Compose и лямбды содержимого» — бесплатный урок Jetpack Compose Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Jetpack Compose Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Jetpack Compose Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Make Components Flexible

A slot lets a component accept a chunk of UI as a parameter. The caller fills the slot, so one component fits many designs.

Meet the content Lambda

The most common slot is a trailing content lambda of type @Composable () -> Unit. Whatever you put in braces becomes the body.

fun Card(content: @Composable () -> Unit) {
  Surface { content() }
}

Calling a Slot

You call the slot just like a normal lambda. Compose runs whatever UI the caller passed, right where you invoke content().

Card {
  Text("Anything I want lives here")
}

Why Slots Beat Booleans

Instead of many flags like showIcon or showTitle, expose slots. Callers compose exactly what they need, with full freedom.

Named Slots

Components can offer several slots, each a parameter. Scaffold does this with topBar, bottomBar, and content. 🧩

fun Banner(
  title: @Composable () -> Unit,
  action: @Composable () -> Unit
) { /* lay them out */ }

Scopes Add Power

A slot can be a receiver lambda, giving the caller helpers. Inside a Column, content is ColumnScope.() -> Unit so weight works.

fun MyColumn(content: @Composable ColumnScope.() -> Unit) {
  Column { content() }
}

Passing Data Into a Slot

Slots can hand values to the caller. A list row slot might pass the item so the caller decides how to draw it.

fun Row(item: User, content: @Composable (User) -> Unit) {
  content(item)
}

Slots Keep State Hoisted

Because the caller supplies the slot content, your component stays stateless about what is inside it. Ownership stays clear.

Reuse Across Screens

One Card or Dialog with slots replaces a dozen near-identical components. You build the frame once and vary the filling. ♻️

Default Slot Content

Give a slot a sensible default so simple callers can skip it, while advanced callers override it fully.

fun Section(
  header: @Composable () -> Unit = { Text("Section") },
  content: @Composable () -> Unit
) { /* ... */ }

The Slot Mindset

When a component starts collecting boolean flags, reach for slots instead. Flexibility comes from passing UI, not toggles.

Quick Check

What is the main benefit of a content slot lambda?

Recap

Slots accept UI as @Composable lambdas, optionally scoped or passing data. They make components flexible while keeping state hoisted. 🚀

Часто задаваемые вопросы

Урок «Слоты состояния Compose и лямбды содержимого» бесплатный?

Да — полный текст урока «Слоты состояния Compose и лямбды содержимого» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Jetpack Compose Academy, подпишись на CoddyKit PRO. Курс Jetpack Compose Academy содержит 4 уроков всего.

Чему я научусь в уроке «Слоты состояния Compose и лямбды содержимого»?

Делайте компоненты гибкими с помощью API слотов. Ты практикуешь Jetpack Compose Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Jetpack Compose Academy?

Предыдущий опыт не требуется. Jetpack Compose Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Слоты состояния Compose и лямбды содержимого»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Jetpack Compose Academy?

Да. Каждый урок Jetpack Compose Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Состояние и отсутствие состояния у Composable
  2. Подъём состояния с value и onValueChange
  3. Единый источник истины
  4. Слоты состояния Compose и лямбды содержимого
← Назад к Jetpack Compose Academy