Метод weight
Метод weight приёмника
ColumnScope
расширяет Modifier
внутри Column.
Параметр weight задаёт долю свободной высоты.
Параметр fill решает, растягивать ли элемент
на всю выделенную высоту.
Синтаксис
Modifier.weight(1f)
Параметры
| Параметр | Описание |
|---|---|
weight |
Доля свободной высоты столбца. Чем больше число, тем выше элемент относительно соседей с weight. |
fill |
Если true, элемент занимает всю выделенную
высоту. По умолчанию true.
|
Пример
Давайте отдадим второму тексту в два раза больше высоты:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Column(modifier = Modifier.fillMaxHeight()) {
Text(
text = "abcde",
modifier = Modifier.weight(1f),
)
Text(
text = "12345",
modifier = Modifier.weight(2f),
)
}
}
}
}
На экране второй текст займёт примерно в два раза больше высоты, чем первый.
Пример
Давайте прижмём текст к началу выделенной области:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Column(modifier = Modifier.fillMaxHeight()) {
Text(text = "abcde")
Text(
text = "12345",
modifier = Modifier.weight(1f, fill = false),
)
}
}
}
}
На экране второй текст займёт только высоту строки, а свободное место останется под ним.
Смотрите также
-
класс
ColumnScope,
где объявлен метод weight -
метод
weight,
который делит ширину ряда -
метод
fillMaxHeight,
который растягивает Column на всю высоту -
функция
Column,
в лямбде которой вызывают weight