ExpandableThemeData constructor

ExpandableThemeData(
  1. BuildContext context, {
  2. EdgeInsets? contentPadding,
  3. TextStyle? headerTextStyle,
  4. TextStyle? rowTextStyle,
  5. int? headerTextMaxLines,
  6. int? rowTextMaxLines,
  7. TextOverflow? rowTextOverflow,
  8. TextStyle? expandedTextStyle,
  9. Color? headerColor,
  10. Color? headerSortIconColor,
  11. double? headerHeight,
  12. Color? expandedBackgroundColor,
  13. Color? expandedBorderColor,
  14. Color? rowColor,
  15. Color? evenRowColor,
  16. Color? oddRowColor,
  17. BorderSide? headerBorder,
  18. BorderSide? rowBorder,
  19. Icon? editIcon,
  20. Icon? expansionIcon,
  21. double? paginationSize,
  22. TextStyle? paginationTextStyle,
  23. Color? paginationSelectedTextColor,
  24. Color? paginationUnselectedTextColor,
  25. Color? paginationSelectedFillColor,
  26. Color? paginationBorderColor,
  27. BorderRadius? paginationBorderRadius,
  28. double? paginationBorderWidth,
})

Implementation

factory ExpandableThemeData(
  BuildContext context, {
  EdgeInsets? contentPadding,
  TextStyle? headerTextStyle,
  TextStyle? rowTextStyle,
  int? headerTextMaxLines,
  int? rowTextMaxLines,
  TextOverflow? rowTextOverflow,
  TextStyle? expandedTextStyle,
  Color? headerColor,
  Color? headerSortIconColor,
  double? headerHeight,
  Color? expandedBackgroundColor,
  Color? expandedBorderColor,
  Color? rowColor,
  Color? evenRowColor,
  Color? oddRowColor,
  BorderSide? headerBorder,
  BorderSide? rowBorder,
  Icon? editIcon,
  Icon? expansionIcon,
  double? paginationSize,
  TextStyle? paginationTextStyle,
  Color? paginationSelectedTextColor,
  Color? paginationUnselectedTextColor,
  Color? paginationSelectedFillColor,
  Color? paginationBorderColor,
  BorderRadius? paginationBorderRadius,
  double? paginationBorderWidth,
}) {
  final ThemeData theme = Theme.of(context);
  final ColorScheme colorScheme = Theme.of(context).colorScheme;

  const TextStyle fixText = TextStyle(fontSize: 13);

  contentPadding ??= const EdgeInsets.symmetric(horizontal: 16.0);
  headerTextStyle ??= theme.textTheme.bodyLarge ?? fixText;
  rowTextStyle ??= theme.textTheme.bodyMedium ?? fixText;
  headerTextMaxLines ??= 2;
  rowTextMaxLines ??= 3;
  rowTextOverflow ??= TextOverflow.ellipsis;
  expandedTextStyle ??= theme.textTheme.bodyMedium ?? fixText;
  headerColor ??= theme.scaffoldBackgroundColor;
  expandedBorderColor ??= colorScheme.onBackground;
  rowColor ??= theme.scaffoldBackgroundColor;
  headerBorder ??= const BorderSide(
    width: 2.5,
    color: Color(0xffeeeeee),
  );
  rowBorder ??= BorderSide.none;
  editIcon ??= Icon(
    Icons.edit,
    color: theme.unselectedWidgetColor,
    size: 16,
  );
  expansionIcon ??= Icon(
    Icons.more_vert,
    color: theme.unselectedWidgetColor,
    size: 18,
  );
  paginationSize ??= 48;

  return ExpandableThemeData.raw(
    contentPadding: contentPadding,
    headerTextStyle: headerTextStyle,
    rowTextStyle: rowTextStyle,
    headerTextMaxLines: headerTextMaxLines,
    rowTextMaxLines: rowTextMaxLines,
    rowTextOverflow: rowTextOverflow,
    expandedTextStyle: expandedTextStyle,
    headerColor: headerColor,
    headerSortIconColor: headerSortIconColor,
    headerHeight: headerHeight,
    expandedBorderColor: expandedBorderColor,
    rowColor: rowColor,
    headerBorder: headerBorder,
    rowBorder: rowBorder,
    editIcon: editIcon,
    expansionIcon: expansionIcon,
    paginationSize: paginationSize,
    paginationTextStyle: paginationTextStyle,
    paginationSelectedTextColor: paginationSelectedTextColor,
    paginationUnselectedTextColor: paginationUnselectedTextColor,
    paginationSelectedFillColor: paginationSelectedFillColor,
    paginationBorderColor: paginationBorderColor,
    paginationBorderRadius: paginationBorderRadius,
    paginationBorderWidth: paginationBorderWidth,
    evenRowColor: evenRowColor,
    oddRowColor: oddRowColor,
  );
}