Почему только «.sp» в fontSize of Text(«») составляется, а не «.dp» в Jetpack Compose-beta08
Я хочу, чтобы размер текста был в
.dp
чтобы он не менялся в соответствии с системным шрифтом. Как добиться этого в Jetpack Compose "Text" composable
3 ответа
Решение
Команда Compose не намерена предоставлять такую возможность,
em
- это немного лаваш в использовании, но есть простой обходной путь, если кому-то это действительно нужно.
@Composable
fun dpToSp(dp: Dp) = with(LocalDensity.current) { dp.toSp() }
Text("ABCD", fontSize = dpToSp(15.dp))
Взято из того же трекера проблем: https://issuetracker.google.com/190644747 .
Вы можете использовать свойства расширения :
private fun Int.textDp(density: Density): TextUnit = with(density) {
this@textDp.dp.toSp()
}
val Int.textDp: TextUnit
@Composable get() = this.textDp(density = LocalDensity.current)
С использованием
em
сделал мой размер шрифта согласованным, независимо от размера шрифта системы
Например.
Text("ABCD", fontSize = 10.em)