Класс Modifier
Интерфейс Modifier описывает цепочку
настроек для composable-функции.
Цепочку передают в параметр modifier
или собирают вызовами методов-расширений.
Каждый метод возвращает новый Modifier,
поэтому вызовы можно ставить друг за другом.
Порядок в цепочке важен: отступы, размер
и фон применяются в том порядке, как записаны.
Синтаксис
Modifier
.padding(16.dp)
.background(Color.LightGray)
Методы
| Метод | Описание |
|---|---|
padding |
Отступ между границей элемента и его содержимым. |
absolutePadding |
Отступ по абсолютным left и right, без учёта направления письма. |
size |
Фиксированная ширина и высота элемента. |
width |
Фиксированная ширина элемента. |
height |
Фиксированная высота элемента. |
sizeIn |
Минимальный и максимальный размер по обеим осям. |
widthIn |
Минимальная и максимальная ширина элемента. |
heightIn |
Минимальная и максимальная высота элемента. |
fillMaxWidth |
Ширина на всю доступную область родителя. |
fillMaxHeight |
Высота на всю доступную область родителя. |
fillMaxSize |
Ширина и высота на всю область родителя. |
offset |
Сдвиг элемента от заданной позиции без изменения раскладки соседей. |
background |
Фон за содержимым элемента. |
border |
Обводка по контуру элемента. |
clip |
Обрезка содержимого по форме. |
shadow |
Тень под элементом. |
alpha |
Прозрачность отрисовки элемента. |
rotate |
Поворот элемента вокруг центра. |
scale |
Масштаб по осям без смены занимаемого места в раскладке. |
aspectRatio |
Соотношение ширины и высоты при измерении. |
clickable |
Реакция на нажатие и индикация нажатия. |
combinedClickable |
Нажатие, двойное нажатие и долгое нажатие на одной области. |
verticalScroll |
Вертикальная прокрутка содержимого. |
horizontalScroll |
Горизонтальная прокрутка содержимого. |
draggable |
Перетаскивание элемента по одной оси с накоплением смещения. |
anchoredDraggable |
Перетаскивание с фиксацией на якорных позициях. |
pointerInput |
Обработка жестов указателя в suspend-блоке. |
statusBarsPadding |
Отступ под строку состояния. |
navigationBarsPadding |
Отступ над панелью навигации. |
systemBarsPadding |
Отступы под системные панели сверху и снизу. |
imePadding |
Отступ над клавиатурой ввода. |
windowInsetsPadding |
Отступ по выбранным WindowInsets.
|
semantics |
Семантика для accessibility и тестов. |
Пример
Давайте зададим отступ и фон для текста:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "abcde",
modifier = Modifier
.padding(16.dp)
.background(Color.LightGray),
)
}
}
}
На экране текст получит серый фон и отступ
16 dp вокруг надписи.