Класс BoxScope
Класс BoxScope - приёмник лямбды
функции Box
и BoxWithConstraints.
Его методы расширяют
Modifier
только внутри этой лямбды.
Через них выравнивают элемент в области
и задают размер по родителю без перекрытия соседей.
Синтаксис
Box {
Text(
modifier = Modifier.align(Alignment.Center),
text = "abcde",
)
}
Методы
| Метод | Описание |
|---|---|
align |
Ставит дочерний элемент в выбранную точку области Box. |
matchParentSize |
Задаёт размер как у родителя, но не влияет на измерение Box. |
Пример
Давайте положим фон на весь Box, а текст - в центр:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
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
import androidx.compose.ui.graphics.Color
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Box(modifier = Modifier.fillMaxSize()) {
Box(
modifier = Modifier
.matchParentSize()
.background(Color.LightGray),
)
Text(
text = "abcde",
modifier = Modifier.align(Alignment.Center),
)
}
}
}
}
На экране серый фон займёт всю область, текст окажется по центру поверх него.
Смотрите также
-
функция
Box,
где доступен BoxScope -
класс
Alignment,
который задаёт точку выравнивания в Box -
метод
fillMaxSize,
который растягивает сам Box на весь экран -
функция
BoxWithConstraints,
которая тоже использует BoxScope