type 'List<dynamic>' is not a subtype of type 'List<Widget>' of 'val' flutter


I have a provider class like this,

class TheData extends ChangeNotifier {
  //1) For storing widgets of habitcontainer
  List<Widget> _habitsList = [];
  List<Widget> get habitsList => _habitsList;
  set habitsList(List<Widget> val) {
    _habitsList = val;

here in the function addingHabits I am adding a widget in the List<Widget> habitsList. And the function is returning the ListView.

  addingHabits() {
    theDataProvider.habitsList = [];
    for (int i = 0; i < myHabits.length; i++) {
        children: [
            height: 65,
            width: 65,
            decoration: BoxDecoration(
                color: myHabits[i].boxColor,
                border: Border.all(
                  color: Colors.grey,
                borderRadius: BorderRadius.all(Radius.circular(16))),
            child: Image(image: myHabits[i].boxImage),
            style: TextStyle(color: Colors.white),
    return Expanded(
      child: ListView(
        scrollDirection: Axis.horizontal,
        children: theDataProvider.habitsList,

And I am just calling the function inside the column like this, widget.addingHabits().
But it gives an error, like this

The following _TypeError was thrown building Consumer<TheData>(dirty, dependencies:
type 'List<dynamic>' is not a subtype of type 'List<Widget>' of 'val'
The relevant error-causing widget was:

What might be the reason, as the habitsList is also of List<Widget> type in provider class?


You should not set an empty array with no type (which would be "dynamic"), but an empty array of the correct type:

theDataProvider.habitsList = <Widget>[]

Answered By – nvoigt

Answer Checked By – Marie Seifert (FlutterFixes Admin)

Leave a Reply

Your email address will not be published.