【发布时间】:2021-02-09 20:23:50
【问题描述】:
我在 Jetpack Compose 版本 alpha-11 中遇到垂直居中文本问题。看来我的字体有大量填充,我无法找到禁用它的方法。据我所知,这在 SO 上只出现过一次,@ 987654321@,但他们使用约束布局的答案似乎表明他们只是将它绝对定位,这并不完全是一个解决方案解决方法,以及我想避免的事情。
您可以在下面的屏幕截图中清楚地看到它。
代码如下:
Column(verticalArrangement = Arrangement.Center) {
Text(
text = "Let's Go",
color = Color.White,
fontSize = 120.sp,
fontFamily = oswaldLightFontFamily(),
textAlign = TextAlign.Center,
modifier = Modifier.background(Color.Blue)
)
}
您希望将其定位的参数 -- verticalArrangement 和 textAlign -- 在这里没有做任何事情,但我将它们包括在内以展示我已经尝试过的内容。
到目前为止,我的解决方法是使用Modifier.graphicsLayer(translationY = -25f) 将其向上移动,但这对于应该如此简单的事情来说似乎是一个可怕的黑客攻击。似乎在经典的 Android 布局中,可以设置 android:includeFontPadding="false" 并且可以绕过这种行为,但在 Jetpack Compose 中似乎没有类似的选项。
有人遇到过吗?
【问题讨论】:
-
-25f 是否适用于该字体的所有设备,或者需要一个密度乘数才能使其在所有设备上“类似”地工作?
-
Tbh 我还没有在其他设备上尝试过,我只需要针对具有特定分辨率的特定设备就被宠坏了。不过,我希望需要对其进行调整,以便它在其他设备上正常工作。我对 Android 没有足够的经验来提供建议,这正是我在 CSS 中处理此类事情的方式。另请注意,-25f 通常只是一个起点,我已经根据需要进行了微调。我也希望其他字体有所不同。这一切都感觉很hacky,我希望尽快有更好的解决方案!
标签: android android-jetpack-compose