gpt4 book ai didi

android - JetpackCompose Modifier 属性的 aspectRatio(1f) 和 fillMaxSize() 有什么区别

转载 作者:行者123 更新时间:2023-12-04 23:54:15 28 4
gpt4 key购买 nike

当我如下设置修饰符时

class MainActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Clock(modifier = Modifier
.aspectRatio(1f)
.fillMaxSize()
.padding(16.dp))
}
}
}

根据我看到其他人的代码,我同时拥有 fillMaxSize()aspectRaio(1f) 并且两者都设置了。他们在做同样的事情吗?还是出于不同的目的需要它们? (我尝试删除其中一个,结果似乎相同)。

P/S:我试图查看代码以了解不同之处,但无法按照 How to see JetpackCompose kotlin source in Android Studio (4.2)?

最佳答案

看起来 aspectRatio(1f) 会使其成为正方形,而 fillMaxSize() 会使其占据整个屏幕。

以下任一示例

        setContent {
Clock(modifier = Modifier
.fillMaxSize()
.aspectRatio(1.0f)
.padding(64.dp))
}

        setContent {
Clock(modifier = Modifier
.fillMaxSize()
.padding(64.dp))
}

fillMaxSize() 优先,drawRect 如下

enter image description here

但是当我们有 aspectRation(1.0f) 时,有以下任一示例,

        setContent {
Clock(modifier = Modifier
.aspectRatio(1.0f)
.fillMaxSize()
.padding(64.dp))
}

        setContent {
Clock(modifier = Modifier
.aspectRatio(1.0f)
.padding(64.dp))
}

应该是

enter image description here

关于android - JetpackCompose Modifier 属性的 aspectRatio(1f) 和 fillMaxSize() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64314422/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com