Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
3 of 502 menu
◀ ▶

Функция Box

Функция Box рисует дочерние элементы в одной области, накладывая их друг на друга. Дочерние элементы передаются в лямбду content. Общее выравнивание по умолчанию задаёт параметр contentAlignment. Параметр propagateMinConstraints решает, учитывать ли минимальные ограничения родителя при измерении дочерних элементов.

Синтаксис

Box { child1() child2() }

Параметры

Параметр Описание
content Лямбда с дочерними элементами. Позже нарисованный элемент перекрывает более ранний. Приёмник лямбды - класс BoxScope.
contentAlignment Выравнивание дочерних элементов внутри области, если для элемента не задано своё выравнивение. Принимает значение класса Alignment.
propagateMinConstraints Если true, минимальные ограничения родителя передаются дочерним элементам при измерении. По умолчанию false.

Пример

Давайте положим два текста в одну область:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Box import androidx.compose.material3.Text class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Box { Text(text = "abcde") Text(text = "12345") } } } }

На экране виден только второй текст, он перекрывает первый.

Пример

Давайте разведём тексты по углам области:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.Text import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Box( modifier = Modifier.fillMaxSize(), ) { Text( text = "abcde", modifier = Modifier.align(Alignment.TopStart), ) Text( text = "12345", modifier = Modifier.align(Alignment.BottomEnd), ) } } } }

На экране первый текст встанет в левый верхний угол, второй - в правый нижний.

Смотрите также

  • функция Row,
    которая ставит дочерние элементы в горизонтальный ряд
  • функция Column,
    которая ставит дочерние элементы в вертикальный столбец
  • метод align,
    который выравнивает дочерний элемент внутри Box
  • функция BoxWithConstraints,
    которая даёт доступ к размеру родителя при раскладке
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить