Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

353
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda