title: Flutter RenderIndexedStack object was given an infinite size during layout
body: <p>I am battling this <code>DropDownItem</code> box error, everything seems to work, but pops up the yellow out of bounds while it loads.  Tried several things and can not get it resolved. I have this code for my <code>Widget</code>.</p>
  
  <pre><code>@override
  Widget build(BuildContext context) {
      var _children = &lt;Widget&gt;[
        !_createNew ? _referrerPractice() : _referrerCreate(),
      ];
      return new Scaffold(
          appBar: new AppBar(
            title: new Text(widget.title),
          ),
          body: new Column(
            mainAxisSize: MainAxisSize.max,
            children: _children,
          ));
    }
  </code></pre>
  
  <p>I then use this as one of the functions.</p>
  
  <pre><code>Widget _referrerPractice() {
  assert(!_createNew);
  return new Form(
    key: _formKey2,
    child: new Expanded(
      child: new ListView(
        padding: const EdgeInsets.symmetric(horizontal: 16.0),
        children: &lt;Widget&gt;[
          new InputDecorator(
            decoration: const InputDecoration(
              labelText: 'Referrer Practice',
              hintText: 'Choose Referrer Practice or choose new',
            ),
            isEmpty: _referPractice == null,
            child: new DropdownButton&lt;String&gt;(
              value: _referPractice,
              isDense: true,
              onChanged: (String newValue) {
                setState(() {
                  _referPractice = newValue;
                });
              },
              items: practicelist.map((Map value) {
                return new DropdownMenuItem&lt;String&gt;(
                  value: value['id'].toString(),
                  child: new Text(value['name']),
                );
              }).toList(),
            ),
          ),
          new RaisedButton(
              child: new Text('Start'), onPressed: _startReferrer),
        ],
      ),
    ),
  );
  </code></pre>
  
  <p>}</p>
  
  <p>It seems to work on another page and I do not use a function to populate the widget, just a regular var of widgets, but seems it should be the same as the structure is the same.</p>
  
  <p>Any ideas what I am missing?  This is one <code>DropDownButton</code>, but it happens on the resulting page that has a <code>DropDownButton</code> as well for the other function.</p>
  
  <p>EDIT**********
  This is the working code</p>
  
  <pre><code>final List&lt;String&gt; _allTypeAppt = &lt;String&gt;['Elective OP', 'Hospital Transfer', 'Phone Consult'];
  
  new Form(
        key: _formKey,
        autovalidate: _autovalidate,
        onWillPop: _warnUserAboutInvalidData,
        child: new Expanded(
            child: new ListView(
              padding: const EdgeInsets.symmetric(horizontal: 16.0),
              children: &lt;Widget&gt;[
                new TextFormField(
                  decoration: const InputDecoration(
                    icon: const Icon(Icons.person),
                    hintText: 'First Name?',
                    labelText: 'First Name *',
                  ),
                  controller: _fnameController,
  
                  onSaved: (String value) { referral.fname = value; },
                  validator: _validateName,
                ),
  
                new TextFormField(
                  decoration: const InputDecoration(
                    icon: const Icon(Icons.person),
                    hintText: 'Last Name?',
                    labelText: 'Last Name *',
                  ),
                  controller: _lnameController,
                  onSaved: (String value) { referral.lname = value; },
                  validator: _validateName,
                ),
  
                new _DateTimePicker(
                  labelText: 'DOB',
                  selectedDate: _fromDate,
                  selectDate: (DateTime date) {
                    setState(() {
                      _fromDate = date;
                    });
                  },
                ),
  
                new TextFormField(
                  decoration: const InputDecoration(
                      icon: const Icon(Icons.phone),
                      hintText: 'How to contact?',
                      labelText: 'Phone Number *',
                  ),
                  controller: _phoneController,
                  keyboardType: TextInputType.phone,
                  onSaved: (String value) { referral.contact = value; },
                  validator: _validatePhoneNumber,
                  // TextInputFormatters are applied in sequence.
                  /*inputFormatters: &lt;TextInputFormatter&gt; [
                    WhitelistingTextInputFormatter.digitsOnly,
                    // Fit the validating format.
                    _phoneNumberFormatter,
                  ],*/
                ),
  
                new TextFormField(
                  decoration: const InputDecoration(
                    icon: const Icon(Icons.phone),
                    hintText: 'Alt contact?',
                    labelText: 'Alt Phone Number *',
                  ),
                  controller: _altPhoneController,
                  keyboardType: TextInputType.phone,
                  onSaved: (String value) { referral.altcontact = value; },
                  validator: _validatePhoneNumber,
                  // TextInputFormatters are applied in sequence.
                  /*inputFormatters: &lt;TextInputFormatter&gt; [
                    WhitelistingTextInputFormatter.digitsOnly,
                    // Fit the validating format.
                    _phoneNumberFormatter,
                  ],*/
                ),
  
                new TextFormField(
                  decoration: const InputDecoration(
                    icon: const Icon(Icons.email),
                    hintText: 'Patien Email?',
                    labelText: 'Patient Email *',
                  ),
                  controller: _emailController,
                  onSaved: (String value) { referral.altcontact = value; },
                  //validator: _validatePhoneNumber,
                  // TextInputFormatters are applied in sequence.
                  /*inputFormatters: &lt;TextInputFormatter&gt; [
                    WhitelistingTextInputFormatter.digitsOnly,
                    // Fit the validating format.
                    _phoneNumberFormatter,
                  ],*/
                ),
  
                new TextFormField(
                  decoration: const InputDecoration(
                    hintText: 'Tell us about patient',
                    helperText: 'It does not have to be detailed yet',
                    labelText: 'Referral Details',
                  ),
                  controller: _detailsController,
                  maxLines: 5,
                ),
  
                new InputDecorator(
                  decoration: const InputDecoration(
                    labelText: 'Type of Appointment',
                    hintText: 'Choose an Appointment Type',
                  ),
                  isEmpty: _typeAppt == null,
                  child: new DropdownButton&lt;String&gt;(
                    value: _typeAppt,
                    isDense: true,
                    onChanged: (String newValue) {
                      setState(() {
                        _typeAppt = newValue;
                      });
                    },
                    items: _allTypeAppt.map((String value) {
                      return new DropdownMenuItem&lt;String&gt;(
                        value: value,
                        child: new Text(value),
                      );
                    }).toList(),
                  ),
                ),
  
                new RaisedButton(
                  child: new Text('Submit Referral'),
                  onPressed: _submitData,
                ),
  
              ],
  
            )
        )
    ),
  </code></pre>