我想通过放大的中心点而不是原始的未修改的圆的中心点来对齐放大的合成CircularProgressIndicator
。
以下内容与CircularProgressIndicator
完全未修改的情况一致,如随附的屏幕截图所示。
Box(contentAlignment = Alignment.Center) {
CircularProgressIndicator(modifier = Modifier.fillMaxWidth())
}
第一次
我尝试了对齐修饰符的各种组合/顺序都没有用。有没有办法在不使用手动偏移的情况下修复这个问题?
3条答案
按热度按时间3bygqnnd1#
您可以使用
Modifier.aspectRatio()
来拥有一个具有任意定义比率的Composable。在获得一个用于进度指示器的方形容器后,您可以使用Box的contentAlignment字段将其居中。mwg9r5ms2#
您正在将大小应用于
CircularProgressIndicator()
,而不是Box()
尝试
ufj5ltwl3#
似乎将最大可能的
CircularProgress
大小居中是为了确保width
和height
具有相同的值。我放置了一个全球定位监听器,使用
fillMaxWidth
、fillMaxSize
或基于screenWidth
的手动大小来检查其大小,但输出值基于我的手机分辨率。fillMaxSize
没有任何意义,因为没有更多的内容需要居中,高度已经填满了整个屏幕,而fillMaxWidth
的高度值非常小,也表现得与没有任何内容需要垂直居中一样,看起来居中测量期望宽度和高度相同。因此,使用
screenWidth
来指定大小将确保CircularProgress
占用最大可能的空间,它可以平等地(w,h)调整到适当的中心。上面的代码取消注解
.size()
修饰符调用将产生下面的输出。