flutter scrollView not scrolling in Stream

550

Listview.Builder inside Listview, it's not a good option which the flutter suggest you

Just replace top Listview with Column

Modify code like this

SingleChildScrollView(
                child: Column(
                  children: <Widget>[
                    ListView.builder(
                        shrinkWrap: true,
                        physics: NeverScrollableScrollPhysics(),
                        ...
Share:
550
Sathwik Doddi
Author by

Sathwik Doddi

Updated on December 21, 2022

Comments

  • Sathwik Doddi
    Sathwik Doddi over 1 year

    I am working on a Flutter project that uses Firebase and has a StreamBuilder that creates a card that is similar to a blog App. Whenever I add a lot of "blogs", I get a bottom Overflow error and when I wrap body: MemoirsList(), in a SingleChildScrollView, the app won't let me scroll down.

    Here is the code for the MemoirsList():

      Widget MemoirsList() {
        return Container(
          child: memoirsStream != null
              ? ListView(
                shrinkWrap: true,
                  children: <Widget>[
                    StreamBuilder(
                      stream: memoirsStream,
                      builder: (context, snapshot) {
                        return ListView.builder(
                            padding: EdgeInsets.symmetric(horizontal: 16),
                            itemCount: snapshot.data.documents.length,
                            shrinkWrap: true,
                            itemBuilder: (context, index) {
                              return MemoirsCard(
                                authorName: snapshot.data.documents[index].data['authorName'],
                                title: snapshot.data.documents[index].data["title"],
                                description: snapshot.data.documents[index].data['description'],
                                imgUrl: snapshot.data.documents[index].data['imgURL'],
                              );
                            });
                      },
                    )
                  ],
                )
              : Container(
                  alignment: Alignment.center,
                  child: CircularProgressIndicator(),
              ),
        );
      }
    

    Code for MemoirsCard():

    class MemoirsCard extends StatelessWidget {
    
      String imgUrl, title, description, authorName;
      MemoirsCard({@required this.imgUrl, @required this.title, @required this.description, @required this.authorName});
    
      @override
      Widget build(BuildContext context) {
        return Container(
          margin: EdgeInsets.only(bottom: 20),
          height: 200,
          child: Stack(
            children: <Widget>[
              ClipRRect(
                borderRadius: BorderRadius.circular(10), 
                child: Image.network(
                  imgUrl, 
                  width: MediaQuery.of(context).size.width,
                  fit: BoxFit.cover
                )
              ),
              Container(
                height: 200,
                decoration: BoxDecoration(
                  color: Colors.black54.withOpacity(0.3),
                  borderRadius: BorderRadius.circular(10),
                ),
              ),
              Container(
                width: MediaQuery.of(context).size.width,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: <Widget>[
                    Text(
                      title,
                      textAlign: TextAlign.center,
                      style: TextStyle(
                        fontSize: 32,
                        fontWeight: FontWeight.w700
                      ),
                    ),
                    SizedBox(height: 8),
                    Text(
                      description,
                      textAlign: TextAlign.center,
                      style: TextStyle(
                        fontSize: 15,
                        fontWeight: FontWeight.w400
                      )
                    ),
                  ],
                ),
              ),
            ],
          )
        );
      }
    }