Класс Shapes
Класс Shapes хранит пять уровней скругления.
extraSmall - для мелких chip и полей,
small - для кнопок,
medium - для карточек,
large и extraLarge -
для крупных панелей и листов.
Каждое поле - форма, чаще
RoundedCornerShape.
Набор передают в
MaterialTheme,
компоненты читают MaterialTheme.shapes.medium
и похожие поля.
Отдельные уроки на каждый размер не делают.
Синтаксис
MaterialTheme.shapes.medium
Пример
Давайте нарисуем карточку со стандартным medium:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.material3.Card
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
Card(shape = MaterialTheme.shapes.medium) {
Text(text = "abcde")
}
}
}
}
}
На экране карточка с текстом "abcde"
получит скругление medium из Shapes.
Пример
Давайте зададим своё medium через RoundedCornerShape:
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Card
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Shapes
import androidx.compose.material3.Text
import androidx.compose.ui.unit.dp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val shapes = Shapes(
medium = RoundedCornerShape(24.dp),
small = RoundedCornerShape(8.dp),
)
MaterialTheme(shapes = shapes) {
Card(shape = MaterialTheme.shapes.medium) {
Text(text = "12345")
}
}
}
}
}
На экране карточка станет сильнее скруглённой, чем при Shapes по умолчанию.
Смотрите также
-
класс
RoundedCornerShape,
которым задают поля Shapes -
функция
Card,
которая берёт shape из темы -
функция
MaterialTheme,
которая раздаёт shapes дочерним элементам -
метод
clip,
который обрезает composable по Shape