@Composable в Jetpack Compose используется для обозначения функций, которые могут создавать и обновлять пользовательский интерфейс. Эти функции называются композиционными функциями и могут содержать код, который описывает, как должен выглядеть пользовательский интерфейс.Когда использовать @Composable
1. Создание пользовательского интерфейса
Если функция должна выводить что-то на экран, она должна быть помечена аннотацией:
@Composable:
ВыделитьKotlin
@Composable
fun Greeting(name: String) {
Text(text = "Hello, $name!")
}2. Вложенные композиционные функции
Если функция вызывает другие композиционные функции, она также должна быть помечена аннотацией
@Composable:
ВыделитьKotlin
@Composable
fun Content() {
Greeting(name = "Kotlin")
}3. Функции, которые изменяют состояние
Если функция изменяет состояние (например, с помощью
remember), она должна быть помечена аннотацией @Composable:
ВыделитьKotlin
@Composable
fun Counter() {
var count by remember { mutableStateOf(0) }
Button(onClick = { count++ }) {
Text("Count: $count")
}
}Примеры
Простой текст:
ВыделитьKotlin
@Composable
fun SimpleText() {
Text("Hello, Compose!")
}Кнопка с текстом:
ВыделитьKotlin
@Composable
fun ButtonWithText() {
Button(onClick = { /* Обработка клика */ }) {
Text("Click me!")
}
}Сложный интерфейс:
ВыделитьKotlin
@Composable
fun ComplexUI() {
Column {
Text("Title")
Button(onClick = { /* Обработка клика */ }) {
Text("Button")
}
Image(painter = painterResource(id = R.drawable.image), contentDescription = "Image")
}
}Заключение
- Используйте аннотацию
@Composableдля функций, которые создают или обновляют пользовательский интерфейс. - Композиционные функции могут вызывать другие композиционные функции.
- Функции, которые изменяют состояние, также должны быть помечены аннотацией
@Composable.