android - JetpackCompose Modifier 属性的 aspectRatio(1f) 和 fillMaxSize() 有什么区别
问题描述
当我将修饰符设置如下
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
将如下
但是,当我们有 时aspectRation(1.0f)
,以以下任一示例为例,
setContent {
Clock(modifier = Modifier
.aspectRatio(1.0f)
.fillMaxSize()
.padding(64.dp))
}
或者
setContent {
Clock(modifier = Modifier
.aspectRatio(1.0f)
.padding(64.dp))
}
应该是
推荐阅读
- linux - linux - 文件更改时终端上的输出更改
- javascript - 如何在 WHERE 子句中使用动态过滤器创建 sql 查询
- php - GetSQLValueString - Dreamweaver 生成的这个函数有什么用?
- simulink - SIMSCAPE 中的锂电池模型并行化错误
- java - 如何从 ImageView 列表中动态获取 imageview 并将该 imageview 放置到 imageview 变量中
- flutter - 尽管出现“必须选择至少一个平台”错误,如何创建颤振项目?
- rdf - rdf:List 和 co:List 的区别
- sql - 是否可以判断调用了哪个 Oracle 集群节点?
- jquery - 模态对话框上的 Oracle Apex 设置页面项
- sql - 仅当 BigQuery 中的其他列具有特定值时才选择值