Kotlin: Аннотация @Composable

Аннотация @Composable в Jetpack Compose используется для обозначения функций, которые могут создавать и обновлять пользовательский интерфейс. Эти функции называются композиционными функциями и могут содержать код, который описывает, как должен выглядеть пользовательский интерфейс.

Когда использовать @Composable



1. Создание пользовательского интерфейса
Если функция должна выводить что-то на экран, она должна быть помечена аннотацией: @Composable:
@Composable
fun Greeting(name: String) {
    Text(text = "Hello, $name!")
}

2. Вложенные композиционные функции
Если функция вызывает другие композиционные функции, она также должна быть помечена аннотацией @Composable:
@Composable
fun Content() {
    Greeting(name = "Kotlin")
}

3. Функции, которые изменяют состояние
Если функция изменяет состояние (например, с помощью remember), она должна быть помечена аннотацией @Composable:
@Composable
fun Counter() {
    var count by remember { mutableStateOf(0) }
    Button(onClick = { count++ }) {
        Text("Count: $count")
    }
}

Примеры


Простой текст:
@Composable
fun SimpleText() {
    Text("Hello, Compose!")
}

Кнопка с текстом:
@Composable
fun ButtonWithText() {
    Button(onClick = { /* Обработка клика */ }) {
        Text("Click me!")
    }
}

Сложный интерфейс:
@Composable
fun ComplexUI() {
    Column {
        Text("Title")
        Button(onClick = { /* Обработка клика */ }) {
            Text("Button")
        }
        Image(painter = painterResource(id = R.drawable.image), contentDescription = "Image")
    }
}

Заключение


  • Используйте аннотацию @Composable для функций, которые создают или обновляют пользовательский интерфейс.
  • Композиционные функции могут вызывать другие композиционные функции.
  • Функции, которые изменяют состояние, также должны быть помечены аннотацией @Composable.


Автор:  14.02.2026 09:45:19 am