Application de capture d'écran
J'ai fait une page avec NESTCrollView, le corps de NESTCrollView est un conteneur qui contient des données des demandes précédentes. Mais le corps de la NuithscrollView est débordé. Le code suivant: P>
NestedScrollView( controller: _scrollViewController, headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { return <Widget>[ SliverAppBar( title: new Text( nama, style: TextStyle(color: putih), ), iconTheme: IconThemeData(color: putih), backgroundColor: colorPrimaryDark, ) ]; }, body: Container( child: Column( children: <Widget>[ Container( color: goldtua, child: Padding( padding: const EdgeInsets.all(12.0), child: Row( mainAxisSize: MainAxisSize.max, children: <Widget>[ Text( string.harga, style: TextStyle(color: putih, fontSize: 24.0), ), Text( formatingRupiah(harga), style: TextStyle(color: putih, fontSize: 24.0), ), ], ), ), ), Expanded( child: Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Row( crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ Text( string.fasilitas, style: TextStyle(fontSize: 18.0), ), Expanded( child: Text( fasilitas, //this is the result of the request, the text is multiline so it takes up less space style: TextStyle(fontSize: 18.0), ), ) ], ), ......
3 Réponses :
Vous obtenez cette erreur car la taille de votre contenu est plus grande que la taille du conteneur. Cela signifie que la taille code> conteneur code> est inférieure à la taille de la colonne code>. Afin de résoudre ce problème, vous devriez envelopper
conteneur code> avec un widget défilable comme
singlechechildscrollview code> qui permettra de faire défiler le contenu et de faire correspondre la taille des parents ou l'espace disponible. Vous n'avez pas besoin d'utiliser
développé code> car chaque élément de la colonne code> code> remplira uniquement l'espace nécessaire
J'ai essayé votre code mais le résultat que j'ai obtenu est juste un écran vide
Il suffit d'utiliser simplement un singlechildscrollview code> à la racine de
Corps CODE>:
body: SingleChildScrollView(
child: Container(
child: Column(
children: <Widget>[.....
Si vous voulez ou avez besoin de continuer à utiliser NESTCrollView, vous pouvez utiliser la colonne ListView à ListView, tout comme ceci:
import 'package:flutter/material.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/services.dart'; class HomePage extends StatefulWidget { HomePage() : super(); @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { @override Widget build(BuildContext context) { return CupertinoPageScaffold( child: NestedScrollView( headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { return <Widget>[ CupertinoSliverNavigationBar( largeTitle: Text('My large title'), ) ]; }, body: Column( // I changed here from ListView and Column and I will get an overflow error children: [ Text("List item", style: TextStyle(fontSize: 96)), Text("List item", style: TextStyle(fontSize: 96)), Text("List item", style: TextStyle(fontSize: 96)), Text("List item", style: TextStyle(fontSize: 96)), Text("List item", style: TextStyle(fontSize: 96)), Text("List item", style: TextStyle(fontSize: 96)), ], ), ), ); } }