Search code examples
androidiosflutterautocompletedisabled-input

How to Disable a AutoCompleteTextField in Flutter


I am developing a Flutter app that has a AutoCompleteTextField in it. I want to enable it in insert mode and disable it in update mode. How can i do it? This is my code for AutoCompleteTextField. It works absolutely fine but i want to disable it in update mode or based on any condition.

                  Expanded(
                    child:  AutoCompleteTextField(
                      controller: input_controller,
                      suggestions: input_list,
                      clearOnSubmit: false,
                      decoration: new InputDecoration(
                        contentPadding:EdgeInsets.fromLTRB(10,0,10,0),

                        border: OutlineInputBorder(
                          borderRadius: BorderRadius.all(Radius.circular(10.0)),
                        ),
                        
                        hintText: 'INPUT',
                        labelText: 'INPUT',
                      ),
                      itemFilter: (item,query){
                        return item.toLowerCase().startsWith(query.toLowerCase());
                      },
                      itemSorter: (a, b){
                        return a.compareTo(b);
                      },
                      itemSubmitted: (item){
                        input_controller.text = item;
                      },
                      itemBuilder: (context,item){
                        return Container(
                          padding: EdgeInsets.all(20.0),
                          child: Row(
                            children: <Widget>[
                              Text(item),
                            ],
                          ),
                        );
                      },
                    ),
                  ),

Solution

  • I'm not sure how you differentiate between INSERT and UPDATE mode in your application. But maybe you can find a way to do something like this:

    Expanded(
      child: isInsertMode 
          ? AutoCompleteTextField(...)
          : TextFormField(...)
    ),