Метод aspectRatio
Метод aspectRatio интерфейса
Modifier
связывает ширину и высоту одним числом:
ширина делится на высоту.
Параметр matchHeightConstraintsFirst
выбирает, какую ось считать главной при нехватке места.
Синтаксис
Modifier.aspectRatio(2f)
Параметры
| Параметр | Описание |
|---|---|
ratio |
Отношение ширины к высоте. Значение 2
даёт блок в два раза шире, чем высок.
|
matchHeightConstraintsFirst |
Если true, сначала подстраивают ширину
под высоту. Иначе наоборот.
|
Пример
Давайте зададим широкий блок с текстом:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "abcde",
modifier = Modifier
.fillMaxWidth()
.aspectRatio(2f)
.background(Color.LightGray),
)
}
}
}
На экране серая область займёт всю ширину, а высота будет в два раза меньше ширины.
Смотрите также
-
метод
size,
который задаёт точные размеры -
метод
fillMaxWidth,
который растягивает по ширине родителя -
метод
sizeIn,
который ограничивает минимум и максимум -
метод
scale,
который меняет видимый масштаб