Parece que con el position:absoluteuso un elemento no se puede centrar usando justifyContento alignItems. Existe una solución alternativa, marginLeftpero no muestra lo mismo para todos los dispositivos, incluso si se utilizan dimensiones para detectar la altura y el ancho del dispositivo.
bottom: {
position: 'absolute',
justifyContent: 'center',
alignItems: 'center',
top: height*0.93,
marginLeft: width*0.18,
},
bottomNav: {
flexDirection: 'row',
},

Respuestas:
Envuelva al niño que desea centrar en una Vista y haga que la Vista sea absoluta.
<View style={{position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, justifyContent: 'center', alignItems: 'center'}}> <Text>Centered text</Text> </View>fuente
StyleSheetobjeto:...StyleSheet.absoluteFillObject. ver github.com/facebook/react-native/blob/master/Libraries/…Viewocupe TODO el espacio en el que se puede hacer clic en la pantalla? Por ejemplo, si tuviera un componente debajo de este absolutamente posicionadoView, no podría registrar clics en él.pointerEvents='box-none'para pasar los toques a través de la vista: github.com/facebook/react-native/issues/12360Si desea centrar un elemento en sí mismo, puede usar alignSelf :
Este es un ejemplo (tenga en cuenta que el logotipo principal es una vista con posición: relativa )
fuente
Puede centrar elementos absolutos proporcionando a la propiedad de la izquierda el ancho del dispositivo dividido por dos y restando la mitad del elemento que desea centrar el ancho.
Por ejemplo, su estilo podría verse así.
bottom: { position: 'absolute', left: (Dimensions.get('window').width / 2) - 25, top: height*0.93, }fuente
measure(layout) { const { width } = layout; this.setState({ width: width }) } ... <View onLayout={(event) => { this.measure(event.nativeEvent.layout) }} ...crear un ancho completo
ViewconalignItems: "center"hijos, entonces inserto deseada en el interior.import React from "react"; import {View} from "react-native"; export default class AbsoluteComponent extends React.Component { render(){ return( <View style={{position: "absolute", left: 0, right: 0, alignItems: "center"}}> {this.props.children} </View> ) } }puede agregar propiedades como
bottom: 30para el componente alineado en la parte inferior.fuente
Y agrega esto
fuente
Puedes probar el código
<View style={{ alignItems: 'center', justifyContent: 'center' }} > <View style={{ position: 'absolute', margin: 'auto', width: 50, height: 50 }} /> </View>fuente
Realmente es muy simple. Utilice porcentaje para
widthyleftpropiedades. Por ejemplo:Lo
widthque sea esleftigual(100% - width)/2fuente