我有一个简单的撰写功能,我想在屏幕中间放置一个圆形进度指示器,尺寸为 80dp x 80dp,它与顶部对齐并占据整个宽度。
@Composable
fun MyCircularProgress() {
CircularProgressIndicator(
modifier = Modifier.size(80.dp,80.dp)
)
}
为什么修改器不起作用
我假设您将它放在一个 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)
)
}
}
有一个更短的没有嵌套的解决方案:
@Composable
private fun MyCircularProgress() = CircularProgressIndicator(
Modifier
.fillMaxSize()
.wrapContentSize(Alignment.Center)
.size(80.dp)
)