¿Es posible obtener el tamaño (ancho y alto) de una vista determinada? Por ejemplo, tengo una vista que muestra el progreso:
<View ref='progressBar' style={{backgroundColor:'red',flex:this.state.progress}} /> 
Necesito saber el ancho real de la vista para alinear otras vistas correctamente. es posible?
                    
                        ios
                                react-native
                                
                    
                    
                        Mateo
fuente
                
                
            fuente

Viewdiferente de acuerdo con las dimensiones. No entiendo cómo puedo usar laonLayoutfunción de Vista para cambiar la forma en que visualizo la Vista. ¿Eso no conduce a un bucle infinito?onLayoutno está relacionado.Esto es lo único que funcionó para mí:
fuente
Básicamente, si desea establecer el tamaño y hacer que cambie, configúrelo en un estado como este:
Puede crear muchas más variaciones de cómo debería modificarse, al usar esto en otro componente que tiene Otra vista como contenedor y crear una devolución de llamada onResponderRelease, que podría pasar la ubicación del evento táctil al estado, que luego podría pasar al componente secundario como propiedad, que podría anular el estado actualizado onLayout, colocando
{[styles.View2, this.state.view2LayoutProps, this.props.touchEventTopLeft]}y así sucesivamente.fuente
Puede usar directamente el
Dimensionsmódulo y calcular los tamaños de sus vistas. En realidad, leDimensionsdan los tamaños de las ventanas principales.Espero poder ayudarte!
Actualización : Hoy, usar nativo
StyleSheetcon Flex organizando sus vistas ayuda a escribir código limpio con soluciones de diseño elegantes en casos amplios en lugar de calcular los tamaños de sus vistas ...Si bien la creación de componentes de cuadrícula personalizados , que responden a los eventos de cambio de tamaño de la ventana principal, podría producir una buena solución en componentes de widget simples
fuente
Quizás puedas usar
measure:fuente
NativeMethodsMixin. No importa lo que haga,measuresiempre está indefinido. Cualquier puntero?NativeMethodsMixinla función solo está disponible en algunos elementos. Por ejemploTouchableWithFeedback, tiene la función de medida, pero una regularTouchableno. Intente cambiar el tipoViewque está utilizando, obtenga la referencia y verifique si el elemento de medida está disponible. Me he tropezado con esto también.para mí, configurar las Dimensiones para usar% es lo que funcionó para mí
width:'100%'fuente
Aquí está el código para obtener las Dimensiones de la vista completa del dispositivo.
var windowSize = Dimensions.get("window");Úselo así:
width=windowSize.width,heigth=windowSize.width/0.565fuente