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.

Cómo mostrar un slider de imágenes en Flutter?

Tengo una lista de URL de imágenes llamada Src. Quiero mostrar estas imágenes usando este paquete: https://pub.dev/packages/flutterimageslideshow. Pero cuando lo hago de esta manera:

Container(
  width: pageWidth,
  height: pageHeight / 2.5,
  // color: Colors.red,
  child: ImageSlideshow(
    children: [
      CachedNetworkImage(
        imageUrl: src,
      ),
    ],
  )
);

La consola muestra lo siguiente:

type 'List<string>' is not a subtype of type 'String'

También, cuando convierto mi lista a una cadena de texto de esta manera:

CachedNetworkImage(
  imageUrl: src.toString().replaceAll("[", "").replaceAll("]", ""),
),

La consola muestra lo siguiente:

I/flutter ( 4859): CacheManager: Error al descargar el archivo desde https://ahmadihypermarket.com/ext/uploads/2021/11/1-378.jpg, https://ahmadihypermarket.com/ext/uploads/2021/11/2-290.jpg con el error:
I/flutter ( 4859): HttpException: Invalid statusCode: 404, uri = https://ahmadihypermarket.com/ext/uploads/2021/11/1-378.jpg,%20https://ahmadihypermarket.com/ext/uploads/2021/11/2-290.jpg

¿Alguien sabe cómo solucionarlo y mostrar las imágenes?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El problema parece ser con la variable src que es una lista de cadenas, pero la propiedad imageUrl de CachedNetworkImage espera una sola cadena. Puedes solucionar esto utilizando un ListView.builder para crear una lista de widgets CachedNetworkImage a partir de tu lista de direcciones URL de imágenes:

    Container(
      width: pageWidth,
      height: pageHeight / 2.5,
      // color: Colors.red,
      child: ImageSlideshow(
        children: <widget>[
          ListView.builder(
            scrollDirection: Axis.horizontal,
            itemCount: src.length,
            itemBuilder: (BuildContext context, int index) {
              return CachedNetworkImage(
                imageUrl: src[index],
              );
            },
          )
        ],
      )
    );
    

    Este código creará una lista horizontal de widgets CachedNetworkImage, uno para cada URL en la lista src.

    En cuanto al error 404, parece que la(s) URL(s) en tu lista src pueden estar incorrectas o expiradas. Asegúrate de que las URL sean válidas e inténtalo nuevamente.

Comments are closed.