Jetpack Compose - 关于预览 widthDp 和 heightDp

Jetpack Compose - About Preview widthDp and heightDp

什么是 widthDpheightDp 作为 @Preview 参数?

【我的环境】

这是我的代码。

@Preview(
    showBackground = true,
    widthDp = 200,
    heightDp = 200,
)
@Composable
fun DefaultPreview() {
    Box(modifier = Modifier.size(100.dp).background(Color.Red))
}

预览如下。

但我预期低于。

盒子尺寸好像比我想象的要大。 有人解释一下吗?

来自 Preview.kt 代码库,

@param widthDp Max width in DP the annotated @[Composable] will be rendered in. Use this to restrict the size of the rendering viewport.
@param heightDp Max height in DP the annotated @[Composable] will be rendered in. Use this to restrict the size of the rendering viewport.

参数是为了限制最大渲染视口。
如果给定尺寸比可组合项的实际尺寸 large/smaller,它们似乎会缩放可组合项。

这在某种程度上是@Preview 的一个错误,第一个可组合项占据了他们拥有的漏洞 space,无法解释原因。即使没有这两个参数widthDp = 200, heightDp = 300, 第一个Box 也拿走了所有的space。因此,现在要获得您想要的结果,您必须在其周围放置一个“保护”主要可组合项的框。