Класс SolidColor
Класс SolidColor реализует
Brush
одним оттенком.
В конструктор передают значение класса
Color.
Такой объект нужен, когда API ждёт именно
Brush, а не Color,
например перегрузка
background
с параметром brush.
Синтаксис
SolidColor(Color.Magenta)
Пример
Давайте зальём блок через SolidColor:
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.size
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.SolidColor
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val fill = SolidColor(Color.Magenta)
Box(
modifier = Modifier
.size(120.dp)
.background(fill),
) {
Text(text = "abcde")
}
}
}
}
На экране квадрат станет сплошным пурпурным.
Пример
Давайте сравним с прямой передачей Color в тот же метод:
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.size
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
.size(120.dp)
.background(Color.Magenta),
) {
Text(text = "12345")
}
}
}
}
На экране результат совпадёт с SolidColor, Compose сам обернёт Color в заливку.
Смотрите также
-
класс
Color,
исходный оттенок для SolidColor -
класс
Brush,
градиенты и другие виды заливки -
метод
background,
куда передают Brush -
функция
Box,
контейнер с фоном