Giter Site home page Giter Site logo

cetorres / multiselect_formfield Goto Github PK

View Code? Open in Web Editor NEW
71.0 4.0 58.0 1.47 MB

A Flutter package that provides a multi select form field using alert dialog to select multiple items with checkboxes and showing as chips.

License: BSD 3-Clause "New" or "Revised" License

Java 3.19% Objective-C 4.52% Dart 82.93% Kotlin 0.71% Swift 2.31% HTML 6.35%
flutter select formfield

multiselect_formfield's Introduction

Donate - Buy Me A Coffee

Multi select form field

A multi select form field using alert dialog to select multiple items with checkboxes and showing as chips.

Demo

Features

  • Can be used as regular form field.
  • Simple to implement.
  • Simple and intuitive to use in the app.
  • Provides validation of data.
  • Provides requirement of the field.
  • Customizable texts.
  • Follows the app theme and colors.
  • Upgraded to Null Safety.

Customization Parameters [MultiFormField]

Parameter Description
title Widget Set Title of MultiSelectTextFormField.
hintWidget Widget Set Hint Text of MultiSelectTextFormField.
required bool Add Selection is Compulsary or not.
errorText String Error String to be Displayed
dataSource List List of Data as DataSource To Select.
textField String Key Param from List (DataSource).
valueField String Value Param From List (DataSource).
okButtonLabel String* POsitive Button Label String.
cancelButtonLabel String* Negative Button Label String.
fillColor Color Widget Changes background color of FormField

Customization [Selection Dialog]

Parameter Description
Shape ShapeBorder Customizes the Shape Of AlertDialog
dialogTextStyle TextStyle Customizes the TextStyle Of AlertDialog
checkBoxCheckColor Color Customizes the CheckColor
checkBoxActiveColor Color Customizes the CheckBoxActiveColor

Customization [Selection Chip]

Parameter Description
chipLabelStyle TextStyle Customizes the TextStyle Of Selected Chip
chipBackGroundColor Color Customizes the Color Of Selected Chip

Minimal Example

MultiSelectFormField(
                  autovalidate: false,
                  chipBackGroundColor: Colors.red,
                  chipLabelStyle: TextStyle(fontWeight: FontWeight.bold),
                  dialogTextStyle: TextStyle(fontWeight: FontWeight.bold),
                  checkBoxActiveColor: Colors.red,
                  checkBoxCheckColor: Colors.green,
                  dialogShapeBorder: RoundedRectangleBorder(
                      borderRadius: BorderRadius.all(Radius.circular(12.0))),
                  title: Text(
                    "Title Of Form",
                    style: TextStyle(fontSize: 16),
                  ),
                  dataSource: [
                    {
                      "display": "Running",
                      "value": "Running",
                    },
                    {
                      "display": "Climbing",
                      "value": "Climbing",
                    },
                    {
                      "display": "Walking",
                      "value": "Walking",
                    },
                  ],
                  textField: 'display',
                  valueField: 'value',
                  okButtonLabel: 'OK',
                  cancelButtonLabel: 'CANCEL',
                  hintWidget: Text('Please choose one or more'),
                  initialValue: _myActivities,
                  onSaved: (value) {
                    if (value == null) return;
                    setState(() {
                      _myActivities = value;
                    });
                  },
                ),

Example

import 'package:flutter/material.dart';
import 'package:multiselect_formfield/multiselect_formfield.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  List? _myActivities;
  late String _myActivitiesResult;
  final formKey = new GlobalKey<FormState>();

  @override
  void initState() {
    super.initState();
    _myActivities = [];
    _myActivitiesResult = '';
  }

  _saveForm() {
    var form = formKey.currentState!;
    if (form.validate()) {
      form.save();
      setState(() {
        _myActivitiesResult = _myActivities.toString();
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('MultiSelect Formfield Example'),
      ),
      body: Center(
        child: Form(
          key: formKey,
          child: Column(
            mainAxisAlignment: MainAxisAlignment.start,
            children: <Widget>[
              Container(
                padding: EdgeInsets.all(16),
                child: MultiSelectFormField(
                  autovalidate: AutovalidateMode.disabled,
                  chipBackGroundColor: Colors.blue,
                  chipLabelStyle: TextStyle(fontWeight: FontWeight.bold, color: Colors.white),
                  dialogTextStyle: TextStyle(fontWeight: FontWeight.bold),
                  checkBoxActiveColor: Colors.blue,
                  checkBoxCheckColor: Colors.white,
                  dialogShapeBorder: RoundedRectangleBorder(
                      borderRadius: BorderRadius.all(Radius.circular(12.0))),
                  title: Text(
                    "My workouts",
                    style: TextStyle(fontSize: 16),
                  ),
                  validator: (value) {
                    if (value == null || value.length == 0) {
                      return 'Please select one or more options';
                    }
                    return null;
                  },
                  dataSource: [
                    {
                      "display": "Running",
                      "value": "Running",
                    },
                    {
                      "display": "Climbing",
                      "value": "Climbing",
                    },
                    {
                      "display": "Walking",
                      "value": "Walking",
                    },
                    {
                      "display": "Swimming",
                      "value": "Swimming",
                    },
                    {
                      "display": "Soccer Practice",
                      "value": "Soccer Practice",
                    },
                    {
                      "display": "Baseball Practice",
                      "value": "Baseball Practice",
                    },
                    {
                      "display": "Football Practice",
                      "value": "Football Practice",
                    },
                  ],
                  textField: 'display',
                  valueField: 'value',
                  okButtonLabel: 'OK',
                  cancelButtonLabel: 'CANCEL',
                  hintWidget: Text('Please choose one or more'),
                  initialValue: _myActivities,
                  onSaved: (value) {
                    if (value == null) return;
                    setState(() {
                      _myActivities = value;
                    });
                  },
                ),
              ),
              Container(
                padding: EdgeInsets.all(8),
                child: ElevatedButton(
                  child: Text('Save'),
                  onPressed: _saveForm,
                ),
              ),
              Container(
                padding: EdgeInsets.all(16),
                child: Text(_myActivitiesResult),
              )
            ],
          ),
        ),
      ),
    );
  }
}

License

This project is licensed under the BSD License. See the LICENSE file for details.

multiselect_formfield's People

Contributors

alienriquebm avatar cetorres avatar davidcorrado avatar farijan avatar megberry avatar surajlad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

multiselect_formfield's Issues

When providing default value on load the validator is always null

Summary:
So if you use your example code. Then set a default value of the drop down. If you press save the form validation returns null thus failing validation.

Steps to reproduce

  1. So in your example if you change the empty array here
    _myActivities = [];

    To be _myActivities = ["Running"];
  2. Load the example and press save
    Expected:
    Validation passes and shows array below.
    Actual:
    Validation fails because value in validation is null

Example on main page

Your example on the main page is wrong, I think it's from an old build. You use hintText in it while in the short example you use hintWidget, you should fix that.

I got lost trying to figure out what I was doing wrong.

Any support for filtering results?

I like the control, but I need a way to allow for filtering using an async function which returns results from server.
Any plans to support that?

Bad state: Too many elements

I have trying out example from here https://pub.dev/packages/multiselect_formfield .

instead of 7 datasource items I gave 14 items. I am getting below error.

        ⣷I/flutter (31891): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════

I/flutter (31891): The following StateError was thrown building MultiSelectFormField(dirty, dependencies:
⣾I/flutter (31891): [_InheritedTheme, _LocalizationsScope-[GlobalKey#b6ebe], _FormScope], state:
I/flutter (31891): FormFieldState#fdbcc):
I/flutter (31891): Bad state: Too many elements
I/flutter (31891):
I/flutter (31891): The relevant error-causing widget was:
I/flutter (31891): MultiSelectFormField
I/flutter (31891): /lib/ui/screens/addProduct.dart:394:24
I/flutter (31891):
I/flutter (31891): When the exception was thrown, this was the stack:
I/flutter (31891): #0 ListMixin.singleWhere (dart:collection/list.dart:174:11)
I/flutter (31891): #1 new MultiSelectFormField.._buildSelectedOptions. (package:multiselect_formfield/multiselect_formfield.dart:54:49)
I/flutter (31891): #2 List.forEach (dart:core-patch/growable_array.dart:285:8)
I/flutter (31891): #3 new MultiSelectFormField.._buildSelectedOptions (package:multiselect_formfield/multiselect_formfield.dart:53:24)
I/flutter (31891): #4 new MultiSelectFormField. (package:multiselect_formfield/multiselect_formfield.dart:136:60)
I/flutter (31891): #5 FormFieldState.build (package:flutter/src/widgets/form.dart)
I/flutter (31891): #6 StatefulElement.build (package:flutter/src/widgets/framework.dart:4334:27)
I/flutter (31891): #7 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4223:15)
I/flutter (31891): #8 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #9 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #10 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #11 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #12 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #13 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #14 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #15 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #16 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #17 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5161:32)
I/flutter (31891): #18 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5561:17)
I/flutter (31891): #19 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #20 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #21 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #22 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #23 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #24 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #25 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #26 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #27 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #28 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #29 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #30 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #31 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #32 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #33 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #34 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #35 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #36 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #37 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #38 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #39 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #40 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #41 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #42 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #43 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #44 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #45 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #46 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #47 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #48 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #49 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #50 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #51 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #52 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #53 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #54 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #55 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #56 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #57 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #58 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #59 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #60 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #61 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #62 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #63 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #65 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #66 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #67 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #68 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #69 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #70 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #71 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #72 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #73 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #74 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #75 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #77 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #78 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #79 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #80 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #81 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #82 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #83 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #84 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #85 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #86 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #87 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #88 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #89 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #90 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #91 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #92 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #93 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #94 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #95 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #96 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #97 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #98 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #99 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #100 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #101 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #102 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #103 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #104 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #105 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #106 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5161:32)
I/flutter (31891): #107 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5561:17)
I/flutter (31891): #108 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #109 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #110 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #111 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #112 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #113 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #114 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #115 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #116 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #117 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #118 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #119 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #120 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #121 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #122 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #123 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #124 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #125 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #126 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #127 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #128 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #129 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #130 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #131 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #132 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #133 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #134 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #135 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #136 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #137 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #138 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)

Reloaded 3 of 758 libraries in 934ms.
I/flutter (31891): #139 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #140 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #141 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #142 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #143 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #144 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #145 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #146 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #147 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #148 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #149 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #150 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #151 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #152 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #153 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #154 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #155 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #156 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #157 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #158 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #159 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #160 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #161 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #162 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #163 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #164 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #165 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #166 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #167 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #168 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #169 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #170 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #171 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #172 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #173 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #174 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #175 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #176 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #177 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #178 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #179 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #180 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #181 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #182 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #183 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #184 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #185 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #186 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #187 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #188 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:94:11)
I/flutter (31891): #189 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #190 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #191 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #192 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #193 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #194 StatefulElement.update (package:flutter/src/widgets/framework.dart:4413:5)
I/flutter (31891): #195 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #196 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #197 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #198 StatelessElement.update (package:flutter/src/widgets/framework.dart:4298:5)
I/flutter (31891): #199 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #200 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5452:14)
I/flutter (31891): #201 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #202 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #203 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #204 ProxyElement.update (package:flutter/src/widgets/framework.dart:4557:5)
I/flutter (31891): #205 Element.updateChild (package:flutter/src/widgets/framework.dart:2977:15)
I/flutter (31891): #206 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4243:16)
I/flutter (31891): #207 Element.rebuild (package:flutter/src/widgets/framework.dart:3947:5)
I/flutter (31891): #208 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2432:33)
I/flutter (31891): #209 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:773:20)
I/flutter (31891): #210 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:283:5)
I/flutter (31891): #211 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1102:15)
I/flutter (31891): #212 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1041:9)
I/flutter (31891): #213 SchedulerBinding.scheduleWarmUpFrame. (package:flutter/src/scheduler/binding.dart:850:7)
I/flutter (31891): #215 _Timer._runTimers (dart:isolate-patch/timer_impl.dart:384:19)
I/flutter (31891): #216 _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:418:5)
I/flutter (31891): #217 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:174:12)
I/flutter (31891): (elided one frame from package dart:async-patch)
I/flutter (31891):
I/flutter (31891): ════════════════════════════════════════════════════════════════════════════════════════════════════
I/flutter (31891): Another exception was thrown: RenderCustomMultiChildLayoutBox object was given an infinite size during layout.
I/flutter (31891): Another exception was thrown: _RenderInkFeatures object was given an infinite size during layout.
I/flutter (31891): Another exception was thrown: RenderPhysicalModel object was given an infinite size during layout.
I/flutter (31891): Another exception was thrown: RenderPadding object was given an infinite size during layout.
I/flutter (31891): Another exception was thrown: RenderFlex object was given an infinite size during layout.

multiselect_formfield not working with flutter 2.8.0

Hi folks,
Please update this package. I am using 0.16 (latest). It was running fine with flutter 2.5.3, now I have upgraded to 2.8.0 and this package is not working with android/ios, It says "Error: No named parameter with the name 'autovalidate'.". Please see the attached screenshot and solve it soon. Thanks.
Capture

Color chips

Hello,

Is posible to change the color chips ? This would be really good.

thanks!

problem setting initialValue

when passing a list of string to initialValue , below exception occurs:

The following NoSuchMethodError was thrown building MultiSelectFormField(dirty, dependencies: [_FormScope, _InheritedTheme, _LocalizationsScope-[GlobalKey#d3d5a]], state: FormFieldState<dynamic>#31c19):
The method '[]' was called on null.
Receiver: null
Tried calling: []("title")

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      new MultiSelectFormField.<anonymous closure>._buildSelectedOptions.<anonymous closure> (package:multiselect_formfield/multiselect_formfield.dart:77:35)
#2      List.forEach (dart:core-patch/growable_array.dart:302:8)
#3      new MultiSelectFormField.<anonymous closure>._buildSelectedOptions (package:multiselect_formfield/multiselect_formfield.dart:69:29)
#4      new MultiSelectFormField.<anonymous closure> (package:multiselect_formfield/multiselect_formfield.dart:168:60)
#5      FormFieldState.build (package:flutter/src/widgets/form.dart:439:26)
#6      StatefulElement.build (package:flutter/src/widgets/framework.dart:4663:28)
#7      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4546:15)
#8      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#9      Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#10     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4525:5)
#11     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4710:11)
#12     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4520:5)
...     Normal element mounting (9 frames)
#21     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#22     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5991:32)
...     Normal element mounting (7 frames)
#29     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#30     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:5991:32)
#31     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3490:14)
#32     Element.updateChild (package:flutter/src/widgets/framework.dart:3258:18)
#33     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#34     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#35     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#36     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#37     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5566:32)
#38     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6001:17)
#39     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#40     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#41     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#42     StatelessElement.update (package:flutter/src/widgets/framework.dart:4627:5)
#43     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#44     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#45     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#46     ProxyElement.update (package:flutter/src/widgets/framework.dart:4906:5)
#47     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#48     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#49     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#50     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#51     StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#52     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#53     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#54     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#55     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#56     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#57     StatelessElement.update (package:flutter/src/widgets/framework.dart:4627:5)
#58     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#59     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#60     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#61     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#62     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#63     StatelessElement.update (package:flutter/src/widgets/framework.dart:4627:5)
#64     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#65     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#66     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#67     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#68     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#69     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#70     StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#71     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#72     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#73     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#74     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#75     StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#76     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#77     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5881:14)
#78     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#79     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#80     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#81     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#82     StatefulElement.update (package:flutter/src/widgets/framework.dart:4751:5)
#83     Element.updateChild (package:flutter/src/widgets/framework.dart:3245:15)
#84     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4571:16)
#85     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4719:11)
#86     Element.rebuild (package:flutter/src/widgets/framework.dart:4262:5)
#87     BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2667:33)
#88     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:866:20)
#89     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
#90     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1117:15)
#91     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1056:9)
#92     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:972:5)
#96     _invoke (dart:ui/hooks.dart:253:10)
#97     _drawFrame (dart:ui/hooks.dart:211:3)
(elided 3 frames from dart:async)

initialValue on MultiSelectFormField not working!

I have tried to set initialValue value on MultiSelectFormField. but it's not working.

My dataset was like:
dataSource: [ { "display": "Running", "value": "1", } ]

And the initialValue is set to
[1]

Initial Value is causing error.

The method '[]' was called on null.
Receiver: null
Tried calling: []("display")

I am using hardcoded list to test but its not working.

 MultiSelectFormField(
                          title: Text(
                            "Title Of Form",
                            style: TextStyle(fontSize: 16),
                          ),
                          dataSource: [
                            {
                              "display": "Running",
                              "value": "Running",
                            },
                            {
                              "display": "Climbing",
                              "value": "Climbing",
                            },
                          ],
                          textField: "display",
                          valueField: 'value',
                          okButtonLabel: 'OK',
                          cancelButtonLabel: 'CANCEL',
                          hintWidget: Text('Please choose one or more'),
                          initialValue: [
                            {
                              "display": "Running",
                              "value": "Running",
                            },
                          ],
                          onSaved: (value) {
                            if (value == null) return;
                            setState(() {
                              // _selectedCategory = value;
                            });
                          },
                        ),

Set Pre-selected values

How does one have values preselected when the Widget is built.
Setting value only returns an Error and initialValue only takes an int.

Initial values showing issue

Hi so I'm using this array as my datasource
[{"id":2,"name":"Carpet Furniture Wash"}]
and using
textField: 'name',
valueField: 'id',

if my initialvalues are empty the dialog is working fine and selected values are shown on ok click

but if i set my intialvalues just like the above data source
then I'm getting error on these lines

if (state.value != null) {
state.value.forEach((item) {
var existingItem = dataSource.singleWhere((itm) => itm[valueField] == item, orElse: () => null);
selectedOptions.add(Chip(
label: Text(existingItem[textField], overflow: TextOverflow.ellipsis),
));
});
}

the bold line has an issue where we are comparing a field with object, which i think should be compared with valueField of datasource item.

Can you please look into it?
Here's my stacktrace:

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
2020-08-27 00:38:39.899 10319-10414/com.yallah.arbi I/flutter: The following NoSuchMethodError was thrown building MultiSelectFormField(dirty, dependencies:
2020-08-27 00:38:39.899 10319-10414/com.yallah.arbi I/flutter: [_FormScope], state: FormFieldState#a128f):
2020-08-27 00:38:39.899 10319-10414/com.yallah.arbi I/flutter: The method '[]' was called on null.
2020-08-27 00:38:39.899 10319-10414/com.yallah.arbi I/flutter: Receiver: null
2020-08-27 00:38:39.899 10319-10414/com.yallah.arbi I/flutter: Tried calling:
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: The relevant error-causing widget was:
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: MultiSelectFormField
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: file:///Volumes/Stuff/Dev/Mine/Flutter/yalla/lib/ui/provider/provider_profile.dart:415:12
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: When the exception was thrown, this was the stack:
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: #1 new MultiSelectFormField.._buildSelectedOptions. (package:multiselect_formfield/multiselect_formfield.dart:58:45)
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: #2 List.forEach (dart:core-patch/growable_array.dart:289:8)
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: #3 new MultiSelectFormField.._buildSelectedOptions (package:multiselect_formfield/multiselect_formfield.dart:55:29)
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: #4 new MultiSelectFormField. (package:multiselect_formfield/multiselect_formfield.dart:140:60)
2020-08-27 00:38:39.900 10319-10414/com.yallah.arbi I/flutter: #5 FormFieldState.build (package:flutter/src/widgets/form.dart:439:26)

How to update selected values from outside

Is there a way to update the value being selected from outside of multiselect_formfield?

Example.
I am looking to implement a clear button and clear multiple edit items at once.

No items can be selected if a text has been written into a TextFormField immediately before (focus still active)

The two widgets:

CustomScrollView(shrinkWrap: true, slivers: [
                  SliverToBoxAdapter(
                      child: Column(children: [
                    Container(
                      height: 1,
                      color: kColorUltraLightGrey,
                    ),
                    SizedBox(height: 28),
                    EditTextField(
                      label: Utils.t(context, 'interim_note_form.note'),
                      padding: EdgeInsets.symmetric(horizontal: 16),
                      isExpandable: true,
                      controller: _messageController,
                    ),
                    FileUpload(
                      label: Utils.t(context, 'interim_note_form.action_add_photo'),
                      fileType: FileType.image,
                      didSelectFiles: (files) => _files = files,
                      files: _files,
                    ),
                    Padding(
                      padding: EdgeInsets.symmetric(horizontal: 16, vertical: 12),
                      child: Stack(
                        key: multiSelectFormFieldKey,
                        children: [
                          MultiSelectFormField(
                            title: Text(Utils.t(context, 'interim_note_form.concerned_modules'), style: TextStyle(fontSize: 11, color: kColorLabel)),
                            fillColor: kColorBackgroundFormField,
                            dataSource: _moduleOptions ?? [],
                            initialValue: _selectedModuleIds,
                            textField: 'display',
                            valueField: 'value',
                            hintWidget: Padding(
                              padding: const EdgeInsets.only(bottom: 4.0),
                              child: Text(Utils.t(context, 'form.choose'), style: kTextStyleBody.copyWith(color: kColorLabel)),
                            ),
                            chipBackGroundColor: kColorWhite,
                            chipLabelStyle: TextStyle(fontSize: 13, color: kColorLabel, fontWeight: FontWeight.w600),
                            dialogShapeBorder: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(12.0))),
                            dialogTextStyle: kTextStyleAlertContent,
                            cancelButtonLabel: Utils.t(context, 'form.cancel').toUpperCase(),
                            onSaved: (value) {
                              if (value == null) return;
                              setState(() {
                                _selectedModuleIds = value;
                              });
                            },
                          ),
                          Positioned.fill(
                              right: 12,
                              bottom: _selectedModuleIds.length > 0 ? 24 : 10,
                              child: Container(
                                alignment: Alignment.bottomRight,
                                child: IgnorePointer(
                                  child: Container(
                                    color: kColorBackgroundFormField,
                                    height: double.infinity,
                                    width: 25,
                                    alignment: Alignment.bottomCenter,
                                    child: Icon(
                                      Icons.arrow_drop_down_sharp,
                                      size: 25,
                                    ),
                                  ),
                                ),
                              ))
                        ],
                      ),
                    ),
                    SizedBox(height: 132),
                  ]))
                ])

The error message is

E/flutter (13216): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: setState() called after dispose(): FormFieldState<dynamic>#03479(lifecycle state: defunct, not mounted)
E/flutter (13216): This error happens if you call setState() on a State object for a widget that no longer appears in the widget tree (e.g., whose parent widget no longer includes the widget in its build). This error can occur when code calls setState() from a timer or an animation callback.
E/flutter (13216): The preferred solution is to cancel the timer or stop listening to the animation in the dispose() callback. Another solution is to check the "mounted" property of this object before calling setState() to ensure the object is still in the tree.
E/flutter (13216): This error might indicate a memory leak if setState() is being called because another object is retaining a reference to this State object after it has been removed from the tree. To avoid memory leaks, consider breaking the reference to this object during dispose().
E/flutter (13216): #0      State.setState.<anonymous closure> (package:flutter/src/widgets/framework.dart:1073:9)
E/flutter (13216): #1      State.setState (package:flutter/src/widgets/framework.dart:1108:6)
E/flutter (13216): #2      FormFieldState.didChange (package:flutter/src/widgets/form.dart:409:5)
E/flutter (13216): #3      new MultiSelectFormField.<anonymous closure>.<anonymous closure> (package:multiselect_formfield/multiselect_formfield.dart:120:25)
E/flutter (13216): <asynchronous suspension>
E/flutter (13216): 

Have anyone the same problem or can help me please?

type '() => Null' is not a subtype of type '(() => Map<String, dynamic>)?' of 'orElse'

════════ Exception caught by widgets library ═══════════════════════════════════
The following _TypeError was thrown building MultiSelectFormField(dirty, dependencies: [_InheritedTheme, _LocalizationsScope-[GlobalKey#9fe74]], state: FormFieldState<dynamic>#113e5):
type '() => Null' is not a subtype of type '(() => Map<String, dynamic>)?' of 'orElse'

The relevant error-causing widget was
MultiSelectFormField
lib/…/select/multiselect.dart:41
When the exception was thrown, this was the stack
#0      ListMixin.singleWhere (dart:collection/list.dart)
#1      new MultiSelectFormField.<anonymous closure>._buildSelectedOptions.<anonymous closure>
package:multiselect_formfield/multiselect_formfield.dart:72
#2      List.forEach (dart:core-patch/growable_array.dart:403:8)
#3      new MultiSelectFormField.<anonymous closure>._buildSelectedOptions
package:multiselect_formfield/multiselect_formfield.dart:71
#4      new MultiSelectFormField.<anonymous closure>
package:multiselect_formfield/multiselect_formfield.dart:168
...
════════════════════════════════════════════════════════════════════════════════

Fix with this

This only happens when using SOUND null safety. It works fine with unsound null safety.

UnderlineInputBoarder as standard

If not stated otherwise there will be a UnderLineInputBoarder. Could this be made a voluentary addition? Instead of having code in the plugin to create it if not stated to make none.

How to ser enable/disabled status?

Hi, I want to thank you about your widget, it's very helpful. I am looking for a option that can let me enable or disable the multiselect. Can you help me? Thanks

Color of border isn't changing ?

Widget dropDownMenu() => MultiSelectFormField(
fillColor: Colors.white,
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(15),
borderSide: BorderSide(color: Colors.red), //### _ COLOR ISSUE_
),
dialogShapeBorder: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(12.0))),
title: const Text("Types of Bonds"),
dataSource: appleTypes,
textField: 'display',
valueField: 'value',
okButtonLabel: 'OK',
cancelButtonLabel: 'CANCEL',
hintWidget: const Text('Please choose one or more type'),
initialValue: _myActivities,
onSaved: (value) {
print('pressed');
},
chipBackGroundColor: Colors.amber[100],
);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.