我正在使用View overlay和ActivityIndicator在后台隐藏加载地图。我正在使用的解决方案是使用具有绝对位置的View将其置于一切之上,并将activityindicator置于顶层,因此发生了一些事情。 问题是,因为不能将ActivityIndiator的大小设置为iOS上的特定像素,所以我不知道它的大小是多少,因此无法正确居中。还是我没有想办法。
以下是一些代码:
<View style={styles.whiteOverlay}>
<ActivityIndicator style={styles.indicator} size="large" color={colors.color4} />
</View>
whiteOverlay: {
width: screen.height,
height: screen.height,
backgroundColor: 'white',
position: 'absolute',
zIndex: 20
},
indicator: {
zIndex: 21,
position: 'absolute',
left: screen.width/2,
top: screen.height/2
}
这会使指示器偏离中心位置。我可以在其中放一些魔术数字,以使其适用于特定设备,猜测指示器的大小,但随后在其他设备上不起作用。感谢您的帮助。
答案 0 :(得分:1)
如果要在屏幕上居中显示活动指示器,则可以这样设置样式。
<View style={{ flex: 1, alignItems: "center", justifyContent: "center", zIndex: 20 }}>
<ActivityIndicator
size="large" color={colors.color4}
/>
</View>
或者您可以使用样式的position
<View style={styles.whiteOverlay} >
<ActivityIndicator
size="large" color={colors.color4}
/>
</View >
...
whiteOverlay: {
position: 'absolute',
left: 0,
right: 0,
top: 0,
bottom: 0,
alignItems: 'center',
justifyContent: 'center'
}
答案 1 :(得分:0)
夫妇选项;
非弹性
whiteOverlay: {
width: screen.height,
height: screen.height,
backgroundColor: 'white',
position: 'absolute',
zIndex: 20
},
indicator: {
zIndex: 21,
position: 'absolute',
left: 50%,
top: 50%,
transform: translate(-50%, -50%)
}
WITH-Flex(假设指示器呈现为叠加层的子级);
whiteOverlay: {
width: screen.height,
height: screen.height,
backgroundColor: 'white',
position: 'absolute',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
zIndex: 20
}