防止系统字体缩放 - Jetpack Compose
Prevent system font scaling - Jetpack Compose
我正在尝试限制应用程序免受系统字体缩放的影响。我经历了很多解决方案,但 none 帮助了我。他们中的大多数人告诉我们使用 dp 而不是 dp 来表示文本大小,但是在 compose 中,如果我是正确的,我们只能使用 sp,因为它需要一个文本单元。
在我们使用 jetpack compose 完成的应用程序中,是否有任何正确的方法来限制字体缩放?请帮忙。
直到jetpack compose for Text()
没有解决方案,你可以使用AndroidView:
@Composable
fun CustomText(
// attributes you need to set
){
AndroidView(factory = { context ->
AppCompatTextView(context).apply {
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 25)
setText("")
// other attributes you want to set or other features which is not available in jetpack compose now.
}
},)
}
您可以像这样为 Int
或 Float
添加扩展名
@Composable
fun Int.scaledSp(): TextUnit {
val value: Int = this
return with(LocalDensity.current) {
val fontScale = this.fontScale
val textSize = value / fontScale
textSize.sp
}
我正在尝试限制应用程序免受系统字体缩放的影响。我经历了很多解决方案,但 none 帮助了我。他们中的大多数人告诉我们使用 dp 而不是 dp 来表示文本大小,但是在 compose 中,如果我是正确的,我们只能使用 sp,因为它需要一个文本单元。 在我们使用 jetpack compose 完成的应用程序中,是否有任何正确的方法来限制字体缩放?请帮忙。
直到jetpack compose for Text()
没有解决方案,你可以使用AndroidView:
@Composable
fun CustomText(
// attributes you need to set
){
AndroidView(factory = { context ->
AppCompatTextView(context).apply {
setTextSize(TypedValue.COMPLEX_UNIT_DIP, 25)
setText("")
// other attributes you want to set or other features which is not available in jetpack compose now.
}
},)
}
您可以像这样为 Int
或 Float
添加扩展名
@Composable
fun Int.scaledSp(): TextUnit {
val value: Int = this
return with(LocalDensity.current) {
val fontScale = this.fontScale
val textSize = value / fontScale
textSize.sp
}