1
votes

Les images disparaissent lors du défilement dans le flutter d'affichage de liste

Je développe une nouvelle application dans Flutter, mais lorsque certaines images sont plus hautes que l'écran, l'image disparaît.

J'utilise la dernière version de Flutter / Dart. J'ai essayé d'ajouter cacheExtent à ListView, mais rien n'a changé. Docteur Flutter:

@override
  Widget build(BuildContext context) {
    final double width = MediaQuery.of(context).size.width;
    super.build(context);
    return ListView(
      children: <Widget>[
        Image.network('https://wallpaperaccess.com/full/11740.jpg', width: width, height: width, fit: BoxFit.cover,),
        Image.network('https://wallpaperaccess.com/full/11740.jpg', width: width, height: width, fit: BoxFit.cover,),
        Image.network('https://wallpaperaccess.com/full/11740.jpg', width: width, height: width, fit: BoxFit.cover,),
...
      ],
    );
  }
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.9.1+hotfix.4, on Microsoft Windows [Versione 10.0.18362.356], locale it-IT)

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[√] Android Studio (version 3.5)
[√] VS Code (version 1.38.1)
[√] Connected device (1 available)

• No issues found!

Aperçu


2 commentaires

Ajoutez quelques captures d'écran. le code fonctionne bien. J'ai même chargé une très longue image. cela fonctionne comme prévu.


Ok, je l'ai ajouté.


4 Réponses :


0
votes

Vous pouvez: 1> Enveloppez les widgets d'images dans un autre widget (conteneur, par exemple) 2> Utilisez ListView.builder et Wrap up listView dans un conteneur ou un widget que vous préférez.


1 commentaires

Alors essayez de remplacer ListView par ListTile,



0
votes

Vous pouvez utiliser BoxFit.fill qui chargera votre image en fonction de la taille de votre téléphone OU Donner uniquement la largeur à double.infinity et laissez le paramètre de hauteur vide


3 commentaires

J'ai besoin que l'image soit carrée


vous pouvez vider le paramètre de hauteur, puis appliquer Box.fill cela fonctionnera


Et enveloppez votre ListView dans le conteneur et donnez une hauteur et une largeur statiques



0
votes
return Scaffold(
      body: Container(
   width: MediaQuery.of(context).size.width,
   height: MediaQuery.of(context).size.height,
   child: ListView(
       children: Widget[
          Container(
            width: 300,
            height:300,
            child: Image(
               image: NetworkImage("your networkd image here"),
               fit: BoxFit.fitWidth
            )
         )
      ]
   )
)
    );
Do it As Much as you like :)

2 commentaires

Widget build (contexte BuildContext) { ajouter mon code ici }


Je sais développer en Flutter 😂



0
votes

J'ai créé un problème sur GitHub sur Flutter repo. Le bogue n'a pas encore été résolu, suivez le problème ici


0 commentaires