В чем разница между Row, Column и Box

«В чем разница между Row, Column и Box» — вопрос из категории Jetpack Compose, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Row, Column и Box — это основные компоновочные контейнеры в Jetpack Compose.

  • Row — располагает дочерние элементы горизонтально (по оси X).
    Пример:
    Row {
        Text("A")
        Text("B") // A и B будут в одной строке
    }
  • Column — располагает дочерние элементы вертикально (по оси Y).
    Пример:
    Column {
        Text("A")
        Text("B") // A и B будут в столбце
    }
  • Box — накладывает дочерние элементы друг на друга (по оси Z). Позволяет управлять выравниванием через contentAlignment.
    Пример:
    Box(contentAlignment = Alignment.Center) {
        Text("A")
        Text("B") // B будет поверх A
    }

Ключевое отличие: направление компоновки (X, Y или Z) и поведение при размещении элементов.