title: Viewport for the textbox is not showing properly using singlechildscrollview in flutter
body: <p>hi guys to all who can help me figure my code,</p>
  
  <pre><code>import 'package:flutter/material.dart';
  import 'package:survey/widgets/widgetlist.dart';
  import 'dart:ui' as ui;
  class Item {
     Item(this.name);
     String name;
  }
  
  
  
  class createnewsurv extends StatefulWidget {
    @override
    _createnewsurvState createState() =&gt; _createnewsurvState();
  }
  
  class _createnewsurvState extends State&lt;createnewsurv&gt; {
  
    TextEditingController _textcontroller = new TextEditingController();
    int surveyquestionnum = 1;
    Item selectedUser;
    List&lt;Item&gt; users = &lt;Item&gt;[
       Item('Sample 1'),
       Item('Sample 2'),
       Item('Sample 3'),
       Item('Sample 4'),
    ];
    List&lt;Item&gt; users2 = &lt;Item&gt;[
      Item('Sample EMOJI 1'),
      Item('Sample EMOJI 2'),
      Item('Sample EMOJI 3'),
      Item('Sample EMOJI 4'),
    ];
  
    @override
    Widget _dropdownbutton (List&lt;Item&gt; userlist){
      return Container(
        padding: EdgeInsets.all(1),
        width: MediaQuery.of(context).size.width,
        decoration: BoxDecoration(
          border: Border.all(),
          borderRadius: BorderRadius.all(
              Radius.circular(15.0) 
          ),
        ),
        child: DropdownButton&lt;Item&gt;(
          underline: SizedBox(),
          isExpanded: true,
          icon: Icon(Icons.arrow_drop_down),
          hint:  Text("  SELECT FROM DROPDOWN"),
          value: selectedUser,
          onChanged: (Item Value) {
            setState(() {
              selectedUser = Value;
            });
          },
          items: userlist.map((Item user) {
            return  DropdownMenuItem&lt;Item&gt;(
              value: user,
              child: Row(
                children: &lt;Widget&gt;[
                  SizedBox(width: 10,),
                  Text(
                    user.name,
                    style:  TextStyle(color: Colors.black),
                  ),
                ],
              ),
            );
          }).toList(),
        ),
      );
    }
  
    Widget build(BuildContext context) {
      final ui.Size logicalSize = MediaQuery.of(context).size;
      final double _height = logicalSize.height;
      return SafeArea(
        child: Scaffold(
          resizeToAvoidBottomInset: false,
            backgroundColor: Colors.white,
            body: SingleChildScrollView(
              child: Padding(
                padding: const EdgeInsets.all(8.0),
                child: Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: &lt;Widget&gt;[
                      Text("CREATE A NEW SURVEY ",style: txtttitsize),
                      SizedBox(height: 10),
                      Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: Text(" SURVEY TITLE",style: txtttitsize),
                      ),
                      _dropdownbutton(users),
                      Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: Text(" SELECT EMOJI SET",style: txtttitsize),
                      ),
                      _dropdownbutton(users2),
                      Padding(
                        padding: const EdgeInsets.all(8.0),
                        child: Text(" SURVEY QUESTION #$surveyquestionnum",style: txtttitsize),
                      ),
                      TextFormField(
                        autocorrect: true,
                        controller: _textcontroller,
                        maxLines: 10,
                        onSaved: (value){
                        },
                        validator: (val){
                          if(val.isEmpty){
                            return "This page Cannot be Blank!";
                          }else{
                            return null;
                          }
                        },
                        decoration: InputDecoration(
                            labelText: "QUESTION",
                            fillColor: Colors.white,
                            border: OutlineInputBorder(
                                borderRadius: BorderRadius.circular(25)
                            )
                        ),
                      )
                    ]
                ),
              ),
            )),
      );
    }
  }
  </code></pre>
  
  <p>this is an incomplete code, but if you noticed and tried running this, it will show 
  2 dropdown widget which for some reason when i select it crash showing ''there should be exactly one item with [DropDownButton]'s Value: error,</p>
  
  <p>and the next one is the textform field, which i am hoping when i wrapped it on singlescrollview when somebody type it should or let the viewport focus its screen to the textbox while typing,
  but its already on the third line and its already blocked by the keyboard,</p>
  
  <p>i may be wrong but how can i use singlescrollview properly on this? or if there is an alternative widget to give this textbox a chance to be viewed properly by the user while they type?</p>
  
  <p>Update </p>
  
  <p><img src="https://i.stack.imgur.com/Ir6IQ.jpg" alt="enter image description here"><img src="https://i.stack.imgur.com/lwf0K.jpg" alt="enter image description here"></p>
  
  <p>This error appears after clicking any drop down button.
  I updated the code with the suggested answer and its still the same for me .</p>