Bird
Raised Fist0
Fluttermobile~5 mins

TextFormField in Flutter - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a TextFormField in Flutter?
A TextFormField is a widget that allows users to enter and edit text in a form. It integrates with form validation and saving mechanisms.
Click to reveal answer
beginner
How do you validate user input in a TextFormField?
You provide a validator function that returns an error message string if the input is invalid, or null if it is valid.
Click to reveal answer
beginner
What property do you use to save the input value from a TextFormField?
Use the onSaved property, which takes a function to save the input value when the form is saved.
Click to reveal answer
intermediate
How can you control the text inside a TextFormField programmatically?
By using a TextEditingController assigned to the controller property of the TextFormField.
Click to reveal answer
intermediate
Why should you wrap TextFormField widgets inside a Form widget?
Wrapping inside a Form allows collective validation and saving of multiple fields together using a GlobalKey<FormState>.
Click to reveal answer
Which property of TextFormField is used to check if the input is valid?
Avalidator
BonChanged
Ccontroller
DonSaved
What does the onSaved callback do in a TextFormField?
AIt validates the input
BIt saves the input value when the form is saved
CIt clears the input field
DIt controls the keyboard type
Which widget should wrap TextFormField widgets to manage form state?
AScaffold
BContainer
CForm
DColumn
How do you programmatically change the text inside a TextFormField?
AUse a <code>TextEditingController</code>
BUse the <code>onChanged</code> callback
CUse the <code>validator</code> function
DUse the <code>onSaved</code> callback
What happens if the validator function returns a non-null string?
AThe form input is considered valid
BThe keyboard is dismissed
CThe input field is cleared
DThe form input is considered invalid and shows the error message
Explain how to use TextFormField inside a form to collect and validate user input.
Think about how you group fields and check their values before saving.
You got /5 concepts.
    Describe how TextEditingController works with TextFormField and why it might be useful.
    Consider when you want to change or read the text from code, not just user typing.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of a TextFormField widget in Flutter?
      easy
      A. To let users type and edit text input
      B. To display images in the app
      C. To create buttons for user interaction
      D. To navigate between screens

      Solution

      1. Step 1: Understand the widget's role

        TextFormField is designed to accept text input from users.
      2. Step 2: Compare with other widget functions

        Other widgets like Image or ElevatedButton serve different purposes, not text input.
      3. Final Answer:

        To let users type and edit text input -> Option A
      4. Quick Check:

        Text input = TextFormField [OK]
      Hint: TextFormField is for typing text only [OK]
      Common Mistakes:
      • Confusing TextFormField with buttons or images
      • Thinking it handles navigation
      • Assuming it only displays static text
      2. Which of the following is the correct way to add a label inside a TextFormField?
      easy
      A. TextFormField(labelText: 'Name')
      B. TextFormField(hint: 'Name')
      C. TextFormField(decoration: InputDecoration(labelText: 'Name'))
      D. TextFormField(text: 'Name')

      Solution

      1. Step 1: Recall how decoration works

        Labels and hints are added inside the decoration property using InputDecoration.
      2. Step 2: Check each option's syntax

        Only TextFormField(decoration: InputDecoration(labelText: 'Name')) correctly uses decoration: InputDecoration(labelText: 'Name').
      3. Final Answer:

        TextFormField(decoration: InputDecoration(labelText: 'Name')) -> Option C
      4. Quick Check:

        Label goes inside decoration [OK]
      Hint: Use decoration with InputDecoration for labels [OK]
      Common Mistakes:
      • Putting labelText directly on TextFormField
      • Using hint instead of labelText for labels
      • Confusing text property with label
      3. What will happen when the following Flutter code runs and the user submits an empty form?
      final _formKey = GlobalKey<FormState>();
      
      Form(
        key: _formKey,
        child: TextFormField(
          validator: (value) {
            if (value == null || value.isEmpty) {
              return 'Please enter text';
            }
            return null;
          },
        ),
      )
      medium
      A. The form submits successfully without errors
      B. The app crashes due to missing onSaved callback
      C. The TextFormField clears automatically
      D. The validator returns 'Please enter text' and shows an error

      Solution

      1. Step 1: Understand validator behavior

        The validator checks if the input is empty and returns an error message if true.
      2. Step 2: Analyze empty input case

        If the user submits empty text, the validator returns 'Please enter text', showing an error below the field.
      3. Final Answer:

        The validator returns 'Please enter text' and shows an error -> Option D
      4. Quick Check:

        Empty input triggers validator error [OK]
      Hint: Empty input triggers validator error message [OK]
      Common Mistakes:
      • Assuming form submits without validation
      • Thinking missing onSaved causes crash
      • Believing TextFormField clears on submit
      4. Identify the error in this Flutter code snippet using TextFormField:
      TextFormField(
        validator: (value) {
          if (value.isEmpty) {
            return 'Required';
          }
          return null;
        },
      )
      medium
      A. Validator should return a boolean, not a string
      B. Missing null check for value before calling isEmpty
      C. TextFormField requires an onChanged callback
      D. Validator cannot be used without a Form widget

      Solution

      1. Step 1: Check validator parameter type

        The validator receives a nullable String? value, so it can be null.
      2. Step 2: Identify missing null check

        The code calls value.isEmpty without checking if value is null, causing a runtime error.
      3. Final Answer:

        Missing null check for value before calling isEmpty -> Option B
      4. Quick Check:

        Always check for null before isEmpty [OK]
      Hint: Check for null before using isEmpty on value [OK]
      Common Mistakes:
      • Ignoring nullable value in validator
      • Expecting validator to return boolean
      • Thinking onChanged is mandatory
      5. You want to create a form with a TextFormField that only accepts numbers and shows a hint 'Enter age'. Which code snippet correctly implements this?
      hard
      A. TextFormField( keyboardType: TextInputType.number, decoration: InputDecoration(hintText: 'Enter age'), validator: (value) { if (value == null || value.isEmpty) return 'Age required'; if (int.tryParse(value) == null) return 'Enter a valid number'; return null; }, )
      B. TextFormField( keyboardType: TextInputType.text, decoration: InputDecoration(labelText: 'Enter age'), validator: (value) => null, )
      C. TextFormField( decoration: InputDecoration(hintText: 'Enter age'), validator: (value) { if (value!.isEmpty) return 'Age required'; return null; }, )
      D. TextFormField( keyboardType: TextInputType.number, decoration: InputDecoration(hintText: 'Age'), validator: (value) { if (value == null) return 'Age required'; return null; }, )

      Solution

      1. Step 1: Identify required properties for numeric input with hint

        The correct implementation requires keyboardType: TextInputType.number, decoration: InputDecoration(hintText: 'Enter age'), and a validator checking for null/empty and valid integer parse.
      2. Step 2: Verify validator handles all cases

        Validator must return error for null, empty, or non-numeric input using if (value == null || value.isEmpty) and int.tryParse(value) == null.
      3. Final Answer:

        TextFormField( keyboardType: TextInputType.number, decoration: InputDecoration(hintText: 'Enter age'), validator: (value) { if (value == null || value.isEmpty) return 'Age required'; if (int.tryParse(value) == null) return 'Enter a valid number'; return null; }, ) -> Option A
      4. Quick Check:

        number keyboard + exact hint + null/empty/parse validator [OK]
      Hint: Use keyboardType.number and validate parsing for numbers [OK]
      Common Mistakes:
      • Using text keyboard for numeric input
      • Not validating numeric format
      • Confusing hintText and labelText
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard