Issue
I am trying to restric the app from affected fro system font scaling. I had gone through many solutions but none helped. Most of them tell use dp instead of dp for text sizes but in compose we can use only sp if i am right as it expects a Text Unit. Is there any right way to restrict font scaling in our app done with jetpack compose ? Please help .
Solution
You can have an extension for Int
or Float
like this
@Composable
fun Int.scaledSp(): TextUnit {
val value: Int = this
return with(LocalDensity.current) {
val fontScale = this.fontScale
val textSize = value / fontScale
textSize.sp
}
You can add an extension parameter of Int
val Int.scaledSp:TextUnit
@Composable get() = scaledSp()
Text(text = "Hello World", fontSize = 20.scaledSp)
Answered By - Thracian
Answer Checked By - Cary Denson (JavaFixing Admin)