A. The last primaryColor overrides the first, no error
B. Duplicate primaryColor properties cause a syntax error
C. Colors.red is invalid, should be Colors.redAccent
D. ThemeData cannot have primaryColor property
Solution
Step 1: Check for duplicate keys in Dart constructors
Dart does not allow duplicate named parameters in constructor calls; it causes a compile-time syntax error.
Step 2: Validate color names and properties
Colors.red and Colors.blue are valid colors; primaryColor is a valid property.
Final Answer:
Duplicate primaryColor properties cause a syntax error -> Option B
Quick Check:
Duplicate named args = syntax error [OK]
Hint: Duplicate named parameters cause syntax error in Dart [OK]
Common Mistakes:
Thinking duplicate keys allow last to override
Confusing color names with invalid ones
Believing primaryColor is invalid property
5. You want your app to use a light theme with green as the primary color and orange for accent color. Which ThemeData configuration achieves this correctly?
hard
A. ThemeData(brightness: Brightness.light, primarySwatch: Colors.green, colorAccent: Colors.orange)
B. ThemeData(brightness: Brightness.dark, primaryColor: Colors.green, secondaryColor: Colors.orange)
C. ThemeData(brightness: Brightness.light, primaryColor: Colors.green, accentColor: Colors.orange)
D. ThemeData(brightness: Brightness.light, primaryColor: Colors.green, colorAccent: Colors.orange)
Solution
Step 1: Set brightness to light
Use brightness: Brightness.light for a light theme.
Step 2: Use correct properties for colors
primaryColor sets main color, accentColor sets highlight color. Both must be valid.
Step 3: Check options for property correctness
ThemeData(brightness: Brightness.light, primaryColor: Colors.green, accentColor: Colors.orange) uses correct properties and values. Others use wrong property names or brightness.
Final Answer:
ThemeData(brightness: Brightness.light, primaryColor: Colors.green, accentColor: Colors.orange) -> Option C