当我将修改器设置如下时
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)?
答案 0 :(得分:0)
像aspectRatio(1f)
会使它变成正方形,而fillMaxSize()
会使它占据整个屏幕。
以下任一示例
setContent {
Clock(modifier = Modifier
.fillMaxSize()
.aspectRatio(1.0f)
.padding(64.dp))
}
或
setContent {
Clock(modifier = Modifier
.fillMaxSize()
.padding(64.dp))
}
在fillMaxSize()
优先的地方,drawRect
如下所示
但是当我们有aspectRation(1.0f)
时,下面给出一个例子,
setContent {
Clock(modifier = Modifier
.aspectRatio(1.0f)
.fillMaxSize()
.padding(64.dp))
}
或
setContent {
Clock(modifier = Modifier
.aspectRatio(1.0f)
.padding(64.dp))
}
应该是