中心活动指示器,在React Native中具有绝对位置

时间:2019-08-07 14:39:14

标签: css react-native activity-indicator

我正在使用View overlay和ActivityIndi​​cator在后台隐藏加载地图。我正在使用的解决方案是使用具有绝对位置的View将其置于一切之上,并将activityindicator置于顶层,因此发生了一些事情。  问题是,因为不能将ActivityIndi​​ator的大小设置为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        
    }

这会使指示器偏离中心位置。我可以在其中放一些魔术数字,以使其适用于特定设备,猜测指示器的大小,但随后在其他设备上不起作用。感谢您的帮助。

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        
}