mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Add actionsPadding to dialog theme (#105109)
* add actionsPadding to dialog theme and refactor * fix typo * remove trailing spaces
This commit is contained in:
parent
180b31dc66
commit
5d10cf550f
@ -34,6 +34,9 @@ class _TokenDefaultsM3 extends DialogTheme {
|
||||
|
||||
@override
|
||||
TextStyle? get contentTextStyle => ${textStyle("md.comp.dialog.supporting-text")};
|
||||
|
||||
@override
|
||||
EdgeInsetsGeometry? get actionsPadding => const EdgeInsets.only(left: 24.0, right: 24.0, bottom: 24.0);
|
||||
}
|
||||
''';
|
||||
}
|
||||
|
||||
@ -554,11 +554,10 @@ class AlertDialog extends StatelessWidget {
|
||||
|
||||
if (actions != null) {
|
||||
final double spacing = (buttonPadding?.horizontal ?? 16) / 2;
|
||||
final EdgeInsetsGeometry effetiveActionsPadding = (actionsPadding ?? EdgeInsets.zero).add(
|
||||
theme.useMaterial3 ? const EdgeInsets.only(left: 24.0, right: 24.0, bottom: 24.0) : EdgeInsets.all(spacing),
|
||||
);
|
||||
actionsWidget = Padding(
|
||||
padding: effetiveActionsPadding,
|
||||
padding: actionsPadding ?? dialogTheme.actionsPadding ?? (
|
||||
theme.useMaterial3 ? defaults.actionsPadding! : defaults.actionsPadding!.add(EdgeInsets.all(spacing))
|
||||
),
|
||||
child: OverflowBar(
|
||||
alignment: actionsAlignment ?? MainAxisAlignment.end,
|
||||
spacing: spacing,
|
||||
@ -1203,6 +1202,9 @@ class _DefaultsM2 extends DialogTheme {
|
||||
|
||||
@override
|
||||
TextStyle? get contentTextStyle => _textTheme.subtitle1;
|
||||
|
||||
@override
|
||||
EdgeInsetsGeometry? get actionsPadding => EdgeInsets.zero;
|
||||
}
|
||||
|
||||
// BEGIN GENERATED TOKEN PROPERTIES
|
||||
@ -1233,6 +1235,9 @@ class _TokenDefaultsM3 extends DialogTheme {
|
||||
|
||||
@override
|
||||
TextStyle? get contentTextStyle => _textTheme.bodyMedium;
|
||||
|
||||
@override
|
||||
EdgeInsetsGeometry? get actionsPadding => const EdgeInsets.only(left: 24.0, right: 24.0, bottom: 24.0);
|
||||
}
|
||||
|
||||
// END GENERATED TOKEN PROPERTIES
|
||||
|
||||
@ -34,6 +34,7 @@ class DialogTheme with Diagnosticable {
|
||||
this.alignment,
|
||||
this.titleTextStyle,
|
||||
this.contentTextStyle,
|
||||
this.actionsPadding,
|
||||
});
|
||||
|
||||
/// Overrides the default value for [Dialog.backgroundColor].
|
||||
@ -56,6 +57,9 @@ class DialogTheme with Diagnosticable {
|
||||
/// [AlertDialog.content].
|
||||
final TextStyle? contentTextStyle;
|
||||
|
||||
/// Overrides the default value for [AlertDialog.actionsPadding].
|
||||
final EdgeInsetsGeometry? actionsPadding;
|
||||
|
||||
/// Creates a copy of this object but with the given fields replaced with the
|
||||
/// new values.
|
||||
DialogTheme copyWith({
|
||||
@ -65,6 +69,7 @@ class DialogTheme with Diagnosticable {
|
||||
AlignmentGeometry? alignment,
|
||||
TextStyle? titleTextStyle,
|
||||
TextStyle? contentTextStyle,
|
||||
EdgeInsetsGeometry? actionsPadding,
|
||||
}) {
|
||||
return DialogTheme(
|
||||
backgroundColor: backgroundColor ?? this.backgroundColor,
|
||||
@ -73,6 +78,7 @@ class DialogTheme with Diagnosticable {
|
||||
alignment: alignment ?? this.alignment,
|
||||
titleTextStyle: titleTextStyle ?? this.titleTextStyle,
|
||||
contentTextStyle: contentTextStyle ?? this.contentTextStyle,
|
||||
actionsPadding: actionsPadding ?? this.actionsPadding,
|
||||
);
|
||||
}
|
||||
|
||||
@ -95,6 +101,7 @@ class DialogTheme with Diagnosticable {
|
||||
alignment: AlignmentGeometry.lerp(a?.alignment, b?.alignment, t),
|
||||
titleTextStyle: TextStyle.lerp(a?.titleTextStyle, b?.titleTextStyle, t),
|
||||
contentTextStyle: TextStyle.lerp(a?.contentTextStyle, b?.contentTextStyle, t),
|
||||
actionsPadding: EdgeInsetsGeometry.lerp(a?.actionsPadding, b?.actionsPadding, t),
|
||||
);
|
||||
}
|
||||
|
||||
@ -115,7 +122,8 @@ class DialogTheme with Diagnosticable {
|
||||
&& other.shape == shape
|
||||
&& other.alignment == alignment
|
||||
&& other.titleTextStyle == titleTextStyle
|
||||
&& other.contentTextStyle == contentTextStyle;
|
||||
&& other.contentTextStyle == contentTextStyle
|
||||
&& other.actionsPadding == actionsPadding;
|
||||
}
|
||||
|
||||
@override
|
||||
@ -127,5 +135,6 @@ class DialogTheme with Diagnosticable {
|
||||
properties.add(DiagnosticsProperty<AlignmentGeometry>('alignment', alignment, defaultValue: null));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('titleTextStyle', titleTextStyle, defaultValue: null));
|
||||
properties.add(DiagnosticsProperty<TextStyle>('contentTextStyle', contentTextStyle, defaultValue: null));
|
||||
properties.add(DiagnosticsProperty<EdgeInsetsGeometry>('actionsPadding', actionsPadding, defaultValue: null));
|
||||
}
|
||||
}
|
||||
|
||||
@ -54,6 +54,7 @@ void main() {
|
||||
alignment: Alignment.bottomLeft,
|
||||
titleTextStyle: TextStyle(color: Color(0xffffffff)),
|
||||
contentTextStyle: TextStyle(color: Color(0xff000000)),
|
||||
actionsPadding: EdgeInsets.all(8.0),
|
||||
).debugFillProperties(builder);
|
||||
final List<String> description = builder.properties
|
||||
.where((DiagnosticsNode n) => !n.isFiltered(DiagnosticLevel.info))
|
||||
@ -64,6 +65,7 @@ void main() {
|
||||
'alignment: Alignment.bottomLeft',
|
||||
'titleTextStyle: TextStyle(inherit: true, color: Color(0xffffffff))',
|
||||
'contentTextStyle: TextStyle(inherit: true, color: Color(0xff000000))',
|
||||
'actionsPadding: EdgeInsets.all(8.0)',
|
||||
]);
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user