Flutter 颤振:如何覆盖功能
基本上,我想覆盖位于Flutter 颤振:如何覆盖功能,flutter,dart,flutter-layout,flutter-dependencies,Flutter,Dart,Flutter Layout,Flutter Dependencies,基本上,我想覆盖位于packages/flatter/lib/src/material/dialog.dart 我想更改barrierColor属性,并从showGeneralDialog builder方法中删除SafeArea小部件 //... Future<T> showDialog<T>({ @required BuildContext context, bool barrierDismissible = true, @Deprecated(
packages/flatter/lib/src/material/dialog.dart
我想更改barrierColor
属性,并从showGeneralDialog builder方法中删除SafeArea
小部件
//...
Future<T> showDialog<T>({
@required BuildContext context,
bool barrierDismissible = true,
@Deprecated(
'Instead of using the "child" argument, return the child from a closure '
'provided to the "builder" argument. This will ensure that the BuildContext '
'is appropriate for widgets built in the dialog.'
) Widget child,
WidgetBuilder builder,
}) {
assert(child == null || builder == null);
assert(debugCheckHasMaterialLocalizations(context));
final ThemeData theme = Theme.of(context, shadowThemeOnly: true);
return showGeneralDialog(
context: context,
pageBuilder: (BuildContext buildContext, Animation<double> animation, Animation<double> secondaryAnimation) {
final Widget pageChild = child ?? Builder(builder: builder);
return SafeArea( // <-- !remove SafeArea widget!
child: Builder(
builder: (BuildContext context) {
return theme != null
? Theme(data: theme, child: pageChild)
: pageChild;
}
),
);
},
barrierDismissible: barrierDismissible,
barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel,
barrierColor: Colors.black54, // <-- !change the color!
transitionDuration: const Duration(milliseconds: 150),
transitionBuilder: _buildMaterialDialogTransitions,
);
}
/。。。
未来展示对话({
@所需的BuildContext上下文,
bool barrierDismissible=true,
@不赞成(
'不是使用“child”参数,而是从闭包返回子对象'
'提供给“builder”参数。这将确保BuildContext'
'适用于对话框中内置的小部件。'
)孩子,
WidgetBuilder,
}) {
断言(child==null | | builder==null);
断言(debugCheckHasMaterialLocalizations(上下文));
最终主题数据主题=theme.of(上下文,shadowThemeOnly:true);
返回显示一般对话框(
上下文:上下文,
pageBuilder:(BuildContext BuildContext,动画动画,动画辅助动画){
最终小部件页面child=child??生成器(生成器:生成器);
返回安全区(//您只需将该函数复制/粘贴到main.dart文件中,在那里更改名称和barrierColor即可,因为您可以使用showGeneralDialog您只需将该函数复制/粘贴到main.dart文件中,在那里更改名称和barrierColor即可,因为您可以使用showGeneralDialog