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

Класс Dp

Класс Dp хранит величину в density-independent pixels. Литерал пишут через суффикс .dp, например 16.dp. На экранах с разной плотностью одно и то же число dp даёт одинаковый физический размер. Перевод в пиксели делают через LocalDensity или методы класса Modifier.

Синтаксис

val gap: Dp = 16.dp

Пример

Давайте зададим отступ тексту в dp:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Text( text = "abcde", modifier = Modifier.padding(24.dp), ) } } }

На экране вокруг текста появится отступ, одинаковый по смыслу на разных устройствах.

Пример

Давайте сложим два значения Dp для ширины Spacer:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.width import androidx.compose.material3.Text import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val part1 = 8.dp val part2 = 12.dp Row { Text(text = "abcde") Spacer(modifier = Modifier.width(part1 + part2)) Text(text = "12345") } } } }

На экране между текстами будет зазор шириной 20 dp.

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

  • класс LocalDensity,
    который переводит dp в пиксели на текущем экране
  • метод padding,
    который задаёт отступы в dp
  • метод size,
    который задаёт ширину и высоту в dp
  • функция Spacer,
    которая занимает место заданного размера
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить