Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
¿Cómo centra una lista plana con elementos flexibles = 1 y no reduce el contenido mientras mantiene un ancho completo?

Estoy tratando de configurar una lista plana con elementos que tengan las siguientes propiedades.

  • tiene flex: 1
  • no tiene un ancho especificado (la altura se puede establecer en el contenido de las imágenes)
  • es maxWidth establecido
  • el width no se puede forzar al 100% porque la intención es que la lista plana admita varias columnas
  • minWidth no se puede configurar ya que evitará la reducción del contenido si es demasiado grande para caber con el número de columnas.

FlatList es el componente de nivel superior de una pantalla, por lo que hará el encabezado colapsado en iOS. A la que

  • ocupa todo el ancho
  • tiene algo de acolchado
  • la barra de desplazamiento debe estar alineada a la derecha (por lo que no puede hacer padding en FlatList en sí)

Entonces lo que tengo es algo como

 const data = Array.from({length: 5}, (v,k) => ({v,k})); function renderItem({item, index}) { return (<View style={{ flex:1, maxWidth: 100, borderWidth: 1, backgroundColor: 'red', // alignSelf: "center" (also shrinks) }}> <Text>{item.k}</Text> </View>) } return (<FlatList style={StyleSheet.absoluteFill} contentContainerStyle={{ padding: 16, // alignSelf: center (shrinks content) }} renderItem={renderItem} data={data} />)

También me gustaría evitar onLayout para evitar demasiados renderizados.

https://snack.expo.dev/@trajano/flatlistneedscentering

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay otro accesorio llamado columnWrapperStyle que hace lo que necesitaba.

 <FlatList columnWrapperStyle={{ justifyContent: 'center', }} contentContainerStyle={{ paddingVertical: 16, }} initialNumToRender={2} renderItem={renderItem} data={data} numColumns={numColumns} //can be set to 3 to force shrinking ItemSeparatorComponent={() => <View style={{ height: 16 }} />} keyExtractor={(item) => item.k.toString()} /> );

Tenga en cuenta que NativeBase no expone esto como un accesorio de utilidad.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda