Android Jetpack Compose 阴影修改器应该是这样的吗?
我很困惑。我已经编写了一些组件,并且正在测试我认为在 compose-1.2.0-alpha 中引入的阴影修改器。我现在使用的是1.2.1。我的组件是这样写的。
fun Labels() {
Label(
modifier = Modifier.shadow(
elevation = 1.dp,
shape = RoundedCornerShape(4.dp),
ambientColor = Color.Blue,
spotColor = Color.Blue
),
text = field.name,
style = typographies.tagDefault
)
}
出于我自己的原因,标签是文本的镜像副本,但这意味着它可以归结为::
fun Label(...) {
BasicText(
text,
modifier,
mergedStyle,
onTextLayout,
overflow,
softWrap,
maxLines,
)
}
因此,在宏伟的计划中,根据我的理解,阴影效果最终会应用于BasicText
,而不是其他任何东西。看起来就像图片中的情况,但为什么这么厚?为什么它不像 CSS 中的
box-shadow
那样更像一个边框?我怎样才能让它看起来像 CSS 中的
box-shadow
相似?我尝试了一些方法,例如将修改器移动到更高的组件并扰乱高度。但所做的一切只是让阴影变得有点模糊,也许还稍微变厚了。另外,如果我将形状更改为类似
RoundedCornerShape(percent = 50)
的形状,它几乎会用这种蓝色填充整个背景,这绝对不是有意的。
Text(
text = text,
style = TextStyle(
shadow = Shadow(
color = Color.Black, offset = Offset(5f, 5f), blurRadius = 5f
)
),
)