Android CircularProgressIndicator 通过撰写占据全屏

问题描述 投票:0回答:2

我有一个简单的撰写功能,我想在屏幕中间放置一个圆形进度指示器,尺寸为 80dp x 80dp,它与顶部对齐并占据整个宽度。

@Composable
fun MyCircularProgress() {
    CircularProgressIndicator(
        modifier = Modifier.size(80.dp,80.dp)
    )
}

为什么修改器不起作用

android-jetpack-compose android-jetpack
2个回答
2
投票

我假设您将它放在一个 Surface 中,并使用 Modifier.fillMaxWidth() 作为直接后代。

Surface
强制对直接后代施加最小的约束。您可以在此处查看我关于 Surface 的回答。

您可以将其放入

Box
contentAlignment = Alignment.Center
中,以获得大小为 80.dp 的 CircularProgressIndicator 并在可组合项中居中

@Composable
fun MyCircularProgress() {
    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        CircularProgressIndicator(
            modifier = Modifier.size(80.dp, 80.dp)
        )
    }
}

0
投票

有一个更短的没有嵌套的解决方案:

@Composable
private fun MyCircularProgress() = CircularProgressIndicator(
     Modifier
       .fillMaxSize()
       .wrapContentSize(Alignment.Center)
       .size(80.dp)
)
© www.soinside.com 2019 - 2024. All rights reserved.