Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to show Circular progress indicator when FutureBuilder is loading data

Tags:

flutter

I am trying to show Circular Progress Indicator while my data in Future Builder loads, I tried two methods to add it however both of them didn't work. How can I achieve the desired result?

My code



class _MyHomePageState extends State<MyHomePage>{

  @override MyHomePage get widget => super.widget;

 @override
  Widget build(BuildContext context){

//To show the ListView inside the Future Builder
     Widget createTasksListView(BuildContext context, AsyncSnapshot snapshot) {
     var values = snapshot.data;
     return  ListView.builder(
       itemCount: values == null ? 0 : values.length,
       itemBuilder: (BuildContext context, int index) {

         return values.isNotEmpty ? Ink(
          .....
         )  :  new CircularProgressIndicator();   //TRIED TO ADD CIRCULAR INDICATOR HERE 
       },
     );
   }


//Future Builder widget 
   Column cardsView = Column(
      children: <Widget>[...
        Expanded(
          child: FutureBuilder(
              future: //API CALL,
              initialData: [],
              builder: (context, snapshot) {
                if (!snapshot.hasData) return Center(child: CircularProgressIndicator());  //CIRCULAR INDICATOR
                return createTasksListView(context, snapshot);
              }),
        ),
      ],
   );
   return Scaffold(
      ...);
 }
}

like image 943
Denise Avatar asked Apr 23 '26 07:04

Denise


1 Answers

Try with:

        FutureBuilder(
              future: //API CALL,
              initialData: [],
              builder: (context, snapshot) {
                if (!snapshot.hasData) 
                    return Center(child: CircularProgressIndicator());  //CIRCULAR INDICATOR
                else
                    return createTasksListView(context, snapshot);
              }),
        ),

When the value of the future is an empty list, which is your initialData, you are rendering a ListView with 0 items, so you cannot render a CircularProgressIndicator in its itemBuilder.

like image 150
Martyns Avatar answered Apr 28 '26 10:04

Martyns