Tengo un elemento que quiero flotar correctamente, por ejemplo
<View style={{width: 300}}>
<Text style={{backgroundColor: "#DDD"}}>Hello</Text>
</View>
¿Cómo se Textpuede flotar / alinear a la derecha? Además, ¿por qué Textocupan el espacio completo de la View, en lugar de solo el espacio para "Hola"?
react-native
Algún chico
fuente
fuente

justifyContent,alignItems,alignSelf. Me pregunto cuál es la correcta.Respuestas:
Debido a que
Viewes un contenedor flexible y por defecto tieneflexDirection: 'column'yalignItems: 'stretch', lo que significa que sus hijos deben estirarse para llenar su ancho.(Tenga en cuenta, según los documentos , que todos los componentes en React Native son
display: 'flex'por defecto y quedisplay: 'inline'no existe en absoluto. De esta manera, el comportamiento predeterminado de aTextdentro de aViewen React Native difiere del comportamiento predeterminado despandentro de adiven la web; en el último caso, el intervalo no ocuparía el ancho dedivporque aspanes un elemento en línea de forma predeterminada. No existe ese concepto en React Native).La
floatpropiedad no existe en React Native, pero hay muchas opciones disponibles para usted (con comportamientos ligeramente diferentes) que le permitirán alinear correctamente su texto. Estos son los que puedo pensar:1. Uso
textAlign: 'right'en elTextelemento(Este enfoque no cambia el hecho de que
Textllena todo el ancho delView; simplemente alinea correctamente el texto dentro delText.)2. Uso
alignSelf: 'flex-end'en elTextEsto reduce el
Textelemento al tamaño requerido para mantener su contenido y lo coloca al final de la dirección transversal (la dirección horizontal, por defecto) deView.3. Uso
alignItems: 'flex-end'en elViewEsto es equivalente a configurar
alignSelf: 'flex-end'en todos losViewhijos de.4. Uso
flexDirection: 'row'yjustifyContent: 'flex-end'en elViewflexDirection: 'row'establece que la dirección principal del diseño sea horizontal en lugar de vertical;justifyContentes igual quealignItems, pero controla la alineación en la dirección principal en lugar de la dirección transversal.5. Uso
flexDirection: 'row'enViewymarginLeft: 'auto'en elTextEste enfoque se demuestra, en el contexto de la web y CSS real, en https://stackoverflow.com/a/34063808/1709587 .
6. Uso
position: 'absolute'yright: 0enText:Al igual que en CSS real, esto elimina el
Text"fuera de flujo", lo que significa que sus hermanos podrán superponerlo y su posición vertical estará en la parte superior deViewforma predeterminada (aunque puede establecer explícitamente una distancia desde la parte superior de la pantalla).Viewusando latoppropiedad de estilo).Naturalmente, cuál de estos diversos enfoques desea utilizar, y si la elección entre ellos es importante, dependerá de sus circunstancias precisas.
fuente
<Text><Text>FLOAT TEXT</Text>multi line text here which wraps around float textO lo mismo pero con una imagen como esto:<View><Text><Image />multi line text which wrap around float image</Text>.Puede especificar directamente la alineación del elemento, por ejemplo:
fuente
displayvalores válidos son'flex'y'none'.Para mí, configurar
alignItemsa un padre hizo el truco, como:fuente
No se supone que uses flotadores en React Native. React Native aprovecha el flexbox para manejar todo eso.
En su caso, probablemente querrá que el contenedor tenga un atributo
Y sobre el texto que ocupa todo el espacio, nuevamente, debe echar un vistazo a su contenedor.
Aquí hay un enlace a una guía realmente excelente en flexbox: una guía completa de Flexbox
fuente
flexDirection: Si desea moverse horizontalmente (fila) o verticalmente (columna)justifyContent: la dirección que quieres mover.fuente
justifyContentno elige una dirección per se; Ofrece un montón de opciones sobre cómo se posicionan y espacian las cosas a lo largo de la dirección principal de flexión.Puede flotar: justo en reaccionar nativo usando flex:
para más detalles: https://facebook.github.io/react-native/docs/flexbox.html#flex-direction
fuente