kotlin 在表面内忽略大小修饰符

kuarbcqp  于 2022-12-30  发布在  Kotlin
关注(0)|答案(1)|浏览(109)

我是第一次使用合成。我使用以下代码:

Card(
    modifier = Modifier
        .width(100.dp)
        .height(100.dp),
    shape = RoundedCornerShape(15.dp),
    backgroundColor = Color.Gray
)

但是由于一些未知的原因Card占据了整个屏幕,并且只有在你使用必需的修饰符时才改变它的大小。fillMaxWidth(0.2f)也不起作用。
只有requiredHeightrequiredWidth可用,其余菜单都正常

rqqzpn5f

rqqzpn5f1#

您正在使用Surface作为Card的父容器。它是具有**propagateMinConstraints = true参数的Box,该参数强制第一个后代具有相同的最小约束或维。
文档中:
如果propagateMinConstraints设置为true,则在Box
上设置的最小大小也将应用于内容**,否则最小大小将仅应用于Box.
使用“列”包裹Card

Surface(
    modifier = Modifier.fillMaxSize(),
 ){
    Column(){

        Card(
            modifier = Modifier
                .width(100.dp)
                .height(100.dp),
            shape = RoundedCornerShape(15.dp),
            backgroundColor = Color.Gray
        ) {}
    }
}

相关问题