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

标签 android android-jetpack-compose

当我如下设置修饰符时

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/

相关文章:

android - 是否可以检测并排放置的Android设备

android - 以最小 API 14 (ICS) 为目标时,最好使用 FragmentActivity(或 ActionBarActivity)或系统 Activity?

android - 报告 XML 文件错误并中止构建

android-jetpack-compose - 在抽屉打开时隐藏软键盘 - Jetpack Compose

android - 如何在 Jetpack Compose 中返回值

android - 如何在 Jetpack 可组合测试中获取字符串资源

java - 如何将 map api key 存储在 local.properties 中并在 AndroidManifest.xml 中使用

android - React Native 中带有包装行的垂直 ScrollView

java - 我的 Android 应用程序中的 Gmail 登录问题

android - jetpack compose shadow 奇怪的行为