es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pila de imágenes en un flatlist que se puede deslizar horizontalmente.

Estoy intentando crear una pila de imágenes en react native flatlist que pueda deslizarse horizontalmente con la ayuda de zindex pero no tengo suerte.
Por favor, consulta la imagen adjunta como referencia. https://i.stack.imgur.com/B6nHE.png

PD: He utilizado react-native-snap-crousel pero el comportamiento no es el mismo en todas las plataformas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para una pila de imágenes en React Native Flatlist con deslizamiento horizontal:

    Si tienes dificultades para crear una pila de imágenes en react-native flatlist que pueda deslizarse horizontalmente con la ayuda de z-index, puedes seguir estos pasos:

    1. Primero, crea una simple flatlist con un scroll horizontal en tu proyecto de React Native.
    import React from 'react';
    import { FlatList, View, Text, StyleSheet } from 'react-native';
    
    const data = [
      { id: 1, name: 'imagen1', uri: 'https://placeimg.com/640/480/tech' },
      { id: 2, name: 'imagen2', uri: 'https://placeimg.com/640/480/tech' },
      { id: 3, name: 'imagen3', uri: 'https://placeimg.com/640/480/tech' },
    ];
    
    const renderItem = ({ item }) => (
      <view style="{styles.item}">
        <text style="{styles.title}">{item.name}</text>
        <image source="{{" uri:="" item.uri="" }}="" style="{styles.image}"></image>
      </view>
    );
    
    const StackImages = () => (
      <flatlist horizontal="" data="{data}" keyextractor="{(item)" ==""> item.id.toString()}
        renderItem={renderItem}
      />
    );
    
    const styles = StyleSheet.create({
      item: {
        backgroundColor: '#f9c2ff',
        padding: 20,
        marginVertical: 8,
        marginHorizontal: 16,
        borderRadius: 5,
      },
      title: {
        fontSize: 32,
      },
      image: {
        width: 200,
        height: 200,
        resizeMode: 'cover',
        borderRadius: 10,
        position: 'absolute',
        left: -30,
        zIndex: -1,
      },
    });
    
    export default StackImages;
    
    1. Ahora, agrega algunos estilos a tu componente de imagen para crear una pila de imágenes con comportamiento de superposición.
      image: {
        width: 200,
        height: 200,
        resizeMode: 'cover',
        borderRadius: 10,
        position: 'absolute',
        left: -30,
        zIndex: -1,
      },
    
    1. Aquí, la propiedad position: 'absolute' posicionará la imagen fuera de su componente de vista padre y left: -30 superpondrá las imágenes entre sí. zIndex debe establecerse como negativo para que se coloque detrás de la vista padre.

    También puedes usar animaciones para deslizar la pila de imágenes horizontalmente.

    Espero que esta solución te ayude a crear una pila de imágenes en react-native flatlist con deslizamiento horizontal.

Comments are closed.