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