Jetpack Compose 中的中心可组合项
Center composable in Jetpack compose
旧版本的 Jetpack compose dev-0.x
曾经有一个 Center
可组合项来使小部件居中。
但是,在 alpha
版本中它已被删除,并且没有专门的可组合项来处理此任务。
在我的例子中,我想在中心显示一个进度指示器,直到获取数据:
Surface(color = MaterialTheme.colors.background) {
val state = viewModel.userState
if (state == null) {
CircularProgressIndicator()
} else {
UserDigest(state = state)
}
}
结果显然是这样的:
指标在拐角处
向指标添加 fillMaxSize()
也无济于事:
CircularProgressIndicator(modifier = Modifier.fillMaxSize())
那么,如何将它(通常是composable
)移动到一个区域的中心?
使用容器。
例如:
Box(
contentAlignment = Alignment.Center,
modifier = Modifier.fillMaxSize()
) {
CircularProgressIndicator()
}
或:
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
CircularProgressIndicator()
}
旧版本的 Jetpack compose dev-0.x
曾经有一个 Center
可组合项来使小部件居中。
但是,在 alpha
版本中它已被删除,并且没有专门的可组合项来处理此任务。
在我的例子中,我想在中心显示一个进度指示器,直到获取数据:
Surface(color = MaterialTheme.colors.background) {
val state = viewModel.userState
if (state == null) {
CircularProgressIndicator()
} else {
UserDigest(state = state)
}
}
结果显然是这样的:
指标在拐角处
向指标添加 fillMaxSize()
也无济于事:
CircularProgressIndicator(modifier = Modifier.fillMaxSize())
那么,如何将它(通常是composable
)移动到一个区域的中心?
使用容器。
例如:
Box(
contentAlignment = Alignment.Center,
modifier = Modifier.fillMaxSize()
) {
CircularProgressIndicator()
}
或:
Column(
modifier = Modifier.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
CircularProgressIndicator()
}