Bird
Raised Fist0
Fluttermobile~20 mins

ElevatedButton and TextButton in Flutter - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Button Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What happens when you press this ElevatedButton?
Consider this Flutter code snippet:
ElevatedButton(
  onPressed: () => print('Pressed!'),
  child: Text('Click me'),
)

What will be the visible effect and console output when the button is tapped?
Flutter
ElevatedButton(
  onPressed: () => print('Pressed!'),
  child: Text('Click me'),
)
AThe button disappears from the screen after tapping.
BThe button shows a ripple effect and prints 'Pressed!' in the console.
CNothing happens visually or in the console because onPressed is not set.
DThe button changes color permanently and prints 'Clicked!' in the console.
Attempts:
2 left
💡 Hint
Think about what onPressed does and how ElevatedButton shows feedback.
📝 Syntax
intermediate
2:00remaining
Which option correctly creates a TextButton with a blue text color?
You want a TextButton with the label 'Submit' and the text color blue. Which code snippet is correct?
A
TextButton(
  onPressed: () {},
  style: TextButton.styleFrom(primary: Colors.blue),
  child: Text('Submit'),
)
B
TextButton(
  onPressed: () {},
  style: TextButton.styleFrom(textColor: Colors.blue),
  child: Text('Submit'),
)
C
TextButton(
  onPressed: () {},
  child: Text('Submit', style: TextStyle(color: Colors.blue)),
)
D
TextButton(
  onPressed: () {},
  style: TextButton.styleFrom(foregroundColor: Colors.blue),
  child: Text('Submit'),
)
Attempts:
2 left
💡 Hint
Check the latest Flutter style property for text color in TextButton.styleFrom.
❓ lifecycle
advanced
2:00remaining
What happens if you set onPressed to null on an ElevatedButton?
Given this code:
ElevatedButton(
  onPressed: null,
  child: Text('Disabled'),
)

What is the button's behavior and appearance?
Flutter
ElevatedButton(
  onPressed: null,
  child: Text('Disabled'),
)
AThe button is disabled: it looks faded and does not respond to taps.
BThe button is enabled and prints an error when tapped.
CThe button is invisible and takes no space on screen.
DThe button is enabled but does nothing when tapped.
Attempts:
2 left
💡 Hint
Think about how Flutter treats null callbacks for buttons.
❓ navigation
advanced
2:00remaining
Which button triggers navigation to a new screen when tapped?
You want to navigate to a new screen called DetailScreen when a button is tapped. Which code snippet correctly does this?
Flutter
ElevatedButton(
  onPressed: () {
    Navigator.of(context).push(MaterialPageRoute(builder: (_) => DetailScreen()));
  },
  child: Text('Go'),
)
AElevatedButton with onPressed calling Navigator.of(context).pop()
BTextButton with onPressed calling Navigator.pop(context)
CElevatedButton with onPressed calling Navigator.of(context).push(MaterialPageRoute(builder: (_) => DetailScreen()))
DTextButton with onPressed set to null
Attempts:
2 left
💡 Hint
To go to a new screen, you push a route onto the Navigator stack.
🔧 Debug
expert
2:00remaining
Why does this ElevatedButton code cause a runtime error?
Examine this code:
ElevatedButton(
  onPressed: () => print(message),
  child: Text('Press'),
)

Assuming 'message' is not declared anywhere, what error occurs when tapping the button?
Flutter
ElevatedButton(
  onPressed: () => print(message),
  child: Text('Press'),
)
ARuntime error: 'message' is not defined (NameError or NoSuchMethodError).
BCompile-time error: missing semicolon after print statement.
CNo error; prints 'null' in the console.
DThe button does not render because of a syntax error.
Attempts:
2 left
💡 Hint
Check if all variables used inside onPressed are declared.

Practice

(1/5)
1. Which Flutter button widget shows a background color and shadow by default?
easy
A. FlatButton
B. TextButton
C. IconButton
D. ElevatedButton

Solution

  1. Step 1: Understand button types in Flutter

    ElevatedButton has a background and shadow, TextButton is flat with no background.
  2. Step 2: Identify the button with background and shadow

    ElevatedButton is designed to have elevation and background color by default.
  3. Final Answer:

    ElevatedButton -> Option D
  4. Quick Check:

    ElevatedButton = background + shadow [OK]
Hint: ElevatedButton has elevation; TextButton is flat [OK]
Common Mistakes:
  • Confusing TextButton as having background
  • Thinking IconButton has background by default
  • Using deprecated FlatButton
2. Which of the following is the correct syntax to create a TextButton with label 'Click' and a print action on press?
easy
A. TextButton(onClick: () => print('Clicked'), child: Text('Click'))
B. TextButton(child: Text('Click'), onTap: () => print('Clicked'))
C. TextButton(onPressed: () => print('Clicked'), child: Text('Click'))
D. TextButton(onPressed: print('Clicked'), child: 'Click')

Solution

  1. Step 1: Check correct property names

    TextButton uses onPressed for tap events and child for its label widget.
  2. Step 2: Verify syntax correctness

    TextButton(onPressed: () => print('Clicked'), child: Text('Click')) correctly uses onPressed with a lambda and child with Text widget.
  3. Final Answer:

    TextButton(onPressed: () => print('Clicked'), child: Text('Click')) -> Option C
  4. Quick Check:

    onPressed + child: Text = correct syntax [OK]
Hint: Use onPressed and child: Text for buttons [OK]
Common Mistakes:
  • Using onClick instead of onPressed
  • Passing string directly as child instead of Text widget
  • Calling print inside onPressed instead of passing a function
3. What will be the visual difference when running this Flutter code?
ElevatedButton(onPressed: () {}, child: Text('Press'))
TextButton(onPressed: () {}, child: Text('Press'))
medium
A. ElevatedButton has background and shadow; TextButton is flat with only text
B. Both buttons look the same with background and shadow
C. TextButton has background; ElevatedButton is flat
D. Both buttons are invisible because onPressed is empty

Solution

  1. Step 1: Understand default styles of ElevatedButton and TextButton

    ElevatedButton shows background color and shadow; TextButton is flat with no background.
  2. Step 2: Analyze the given code

    Both have onPressed defined, so both are enabled and visible; their styles differ as per their types.
  3. Final Answer:

    ElevatedButton has background and shadow; TextButton is flat with only text -> Option A
  4. Quick Check:

    ElevatedButton = raised, TextButton = flat [OK]
Hint: ElevatedButton raised, TextButton flat text only [OK]
Common Mistakes:
  • Thinking empty onPressed disables button
  • Assuming TextButton has background by default
  • Confusing visual styles of both buttons
4. Identify the error in this Flutter button code:
ElevatedButton(
  onPressed: print('Clicked'),
  child: Text('Tap me'),
)
medium
A. child should be a string, not Text widget
B. onPressed should be a function, not a function call
C. ElevatedButton does not accept onPressed property
D. Missing semicolon after ElevatedButton

Solution

  1. Step 1: Check onPressed assignment

    onPressed expects a function to call when pressed, not the result of a function call.
  2. Step 2: Identify the mistake

    print('Clicked') is called immediately; should be wrapped in a lambda like () => print('Clicked').
  3. Final Answer:

    onPressed should be a function, not a function call -> Option B
  4. Quick Check:

    onPressed = function, not function call [OK]
Hint: Pass function to onPressed, not call it directly [OK]
Common Mistakes:
  • Calling print inside onPressed instead of passing a function
  • Using string instead of Text widget for child
  • Assuming ElevatedButton lacks onPressed
5. You want a button that looks flat but disables itself when pressed. Which Flutter widget and property combination achieves this best?
hard
A. TextButton with onPressed set to null after press
B. ElevatedButton with onPressed set to null after press
C. TextButton with onPressed always non-null
D. ElevatedButton with child set to null

Solution

  1. Step 1: Understand button disabling in Flutter

    Setting onPressed to null disables the button visually and functionally.
  2. Step 2: Choose button style and disabling method

    TextButton is flat; disabling it by setting onPressed to null after press fits the requirement.
  3. Step 3: Eliminate incorrect options

    ElevatedButton is raised, not flat; child cannot disable button; onPressed non-null keeps button enabled.
  4. Final Answer:

    TextButton with onPressed set to null after press -> Option A
  5. Quick Check:

    Disable button by onPressed = null [OK]
Hint: Disable button by setting onPressed to null [OK]
Common Mistakes:
  • Thinking child null disables button
  • Using ElevatedButton for flat style
  • Not setting onPressed to null to disable
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