setState() or markNeedsBuild called during build Conclusion

In my case I was calling the setState method before the build method had completed the process of building the widgets.

The Issue

You can face this error if you are showing a snackBar or an alertDialog before the completion of the build method, as well as in many other cases. So, in such cases you should use a callback function as shown below:

WidgetsBinding.instance.addPostFrameCallback((_) {
  
  // Add Your Code here.
  
});

or you can also use SchedulerBinding which does the same:

SchedulerBinding.instance.addPostFrameCallback((_) {
  
  // add your code here.
  
  Navigator.push(
        context,
        new MaterialPageRoute(
            builder: (context) => NextPage()));
});

The Problem in Your Code

Your code on onPressed: executes buildlist('button'+index.toString()) and passes the result to onPressed, but that is not the desired behavior.

// Bad practice
onPressed: buildlist('button'+index.toString()),

It should be:

// Correct way
onPressed: () => buildlist('button'+index.toString()),

This way a function (closure) is passed to onPressed, that when executed, calls buildlist().