of static method
Returns the nearest DialogTheme.
Implementation
static DialogThemeData of(BuildContext context) {
final DialogTheme? dialogTheme =
context.dependOnInheritedWidgetOfExactType<DialogTheme>();
DialogThemeData? dialogThemeData = dialogTheme?.data;
if (dialogThemeData == null || !dialogThemeData._isConcrete) {
final ThemeData themeData = Theme.of(context);
final TextTheme textTheme = themeData.textTheme;
final ColorScheme colorScheme = themeData.colorScheme;
dialogThemeData ??= themeData.dialogTheme;
final dialogValue =
_DialogThemeData(textTheme: textTheme, colorScheme: colorScheme);
final BoxConstraints constraints =
dialogThemeData.constraints ?? dialogValue.constraints;
final EdgeInsets menuPadding =
dialogThemeData.menuPadding ?? dialogValue.menuPadding;
final double menuSpacing =
dialogThemeData.menuSpacing ?? dialogValue.menuSpacing;
final EdgeInsets titlePadding =
dialogThemeData.titlePadding ?? dialogValue.titlePadding;
final EdgeInsets bodyPadding =
dialogThemeData.bodyPadding ?? dialogValue.bodyPadding;
final Color background =
dialogThemeData.background ?? dialogValue.background;
final Color barrierColor =
dialogThemeData.barrierColor ?? dialogValue.barrierColor;
final TextStyle titleTextStyle =
dialogThemeData.titleTextStyle ?? dialogValue.titleTextStyle;
final TextAlign bodyTextAlign =
dialogThemeData.bodyTextAlign ?? dialogValue.bodyTextAlign;
final ImageFilter imageFilter =
dialogThemeData.imageFilter ?? dialogValue.imageFilter;
return dialogThemeData.copyWith(
constraints: constraints,
menuPadding: menuPadding,
menuSpacing: menuSpacing,
titlePadding: titlePadding,
bodyPadding: bodyPadding,
background: background,
barrierColor: barrierColor,
titleTextStyle: titleTextStyle,
bodyTextAlign: bodyTextAlign,
imageFilter: imageFilter,
);
}
assert(dialogThemeData._isConcrete);
return dialogThemeData;
}