ExpansionTile constructor Null safety

const ExpansionTile(
  1. {Key? key,
  2. Widget? leading,
  3. required Widget title,
  4. Widget? subtitle,
  5. ValueChanged<bool>? onExpansionChanged,
  6. List<Widget> children,
  7. Widget? trailing,
  8. bool initiallyExpanded,
  9. bool maintainState,
  10. EdgeInsetsGeometry? tilePadding,
  11. CrossAxisAlignment? expandedCrossAxisAlignment,
  12. Alignment? expandedAlignment,
  13. EdgeInsetsGeometry? childrenPadding,
  14. Color? backgroundColor,
  15. Color? collapsedBackgroundColor,
  16. Color? textColor,
  17. Color? collapsedTextColor,
  18. Color? iconColor,
  19. Color? collapsedIconColor,
  20. ListTileControlAffinity? controlAffinity}
)

Creates a single-line ListTile with an expansion arrow icon that expands or collapses the tile to reveal or hide the children. The initiallyExpanded property must be non-null.

Implementation

const ExpansionTile({
  Key? key,
  this.leading,
  required this.title,
  this.subtitle,
  this.onExpansionChanged,
  this.children = const <Widget>[],
  this.trailing,
  this.initiallyExpanded = false,
  this.maintainState = false,
  this.tilePadding,
  this.expandedCrossAxisAlignment,
  this.expandedAlignment,
  this.childrenPadding,
  this.backgroundColor,
  this.collapsedBackgroundColor,
  this.textColor,
  this.collapsedTextColor,
  this.iconColor,
  this.collapsedIconColor,
  this.controlAffinity,
}) : assert(initiallyExpanded != null),
     assert(maintainState != null),
     assert(
     expandedCrossAxisAlignment != CrossAxisAlignment.baseline,
     'CrossAxisAlignment.baseline is not supported since the expanded children '
         'are aligned in a column, not a row. Try to use another constant.',
     ),
     super(key: key);