Jetpack Compose 中 Box 内的组件中的 `fillMaxSize()` 和 `matchParentSize()` 有什么区别?

互联网 行业动态 更新时间:2024-06-13 00:19:32

Raf*_*iul 5

来自官方文档

Modifier.fillMaxSize使元素占据所有可用空间的修饰符将参与定义 Box 的大小。

所以它指定了元素的大小。

但是,如果您Modifier.matchParentSize()在框内的元素中使用它与指定框的大小无关。

盒子的大小将由盒子的其他子元素测量。然后带有 的元素Modifier.matchParentSize()将匹配并占据该大小。

您不能.matchParentSize()在 Row 或 Column 中使用,因为此修饰符是 BoxScope 接口的一部分。所以它只适用于boxscope。

例如,如果您将 fillMaxSize 与以下内容一起使用。

Box() {
    Text(
        modifier = Modifier
            .fillMaxSize()
            .background(Color.Green),
        text = ""
    )

    Text(
        modifier = Modifier
            .size(100.dp)
            .background(Color.Blue),
        text = "Hello",
    )
}

你会得到这个。.fillMaxSize()由于第一个孩子中的修饰符,它将填满整个屏幕。

但是如果你使用这个

Box() {
    Text(
        modifier = Modifier
            .matchParentSize()
            .background(Green),
        text = ""
    )

    Text(
        modifier = Modifier
            .size(100.dp),
        text = "Hello",
    )
}

Hello 文本只需要 100.dp,然后绿色背景将填充 100.dp,因为 .matchParentSize()第一个子元素中的修饰符。

我本可以使用 Box 而不是 Text,但更多的 Box 会让人感到困惑。

更多推荐

有什么区别,组件,Compose,Jetpack,Box

本文发布于:2023-04-21 09:49:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/77ae77ca83d313985acff893b883d646.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:有什么区别   组件   Compose   Jetpack   Box

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!