我使用dialogBackgroundColor属性仍然没有改变颜色。谁能告诉我如何改变对话框的背景颜色?
dialogBackgroundColor
a9wyjsp71#
您现在可以使用AlertDialog的backgroundColor属性来更改颜色。
AlertDialog
backgroundColor
AlertDialog( backgroundColor: Colors.orange, ... )
cczfrluj2#
您可以在不使用Builder的情况下执行此操作。下面是一个例子。
Builder
@override Widget build(BuildContext context) { return RaisedButton( onPressed: () { showDialog( context: context, builder: (context) { return Theme( data: Theme.of(context).copyWith(dialogBackgroundColor: Colors.orange), child: AlertDialog( title: Text("Dialog Title"), ), ); }, ); }, child: Text("Show dialog"), ); }
x3naxklr3#
您需要像这样将Dialog Package 在Builder中。在此之后,dialogBackgroundColor将产生影响。
Dialog
Theme( data: ThemeData(dialogBackgroundColor: Colors.orange), child: Builder( builder: (context) { return RaisedButton( onPressed: () { showDialog( context: context, builder: (context) { return AlertDialog( title: Text("Dialog title"), ); }, ); }, child: Text("Show dialog"), ); }, ), )
yquaqz184#
showDialog( context: context, builder: (BuildContext context) { return AlertDialog( shape: RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.circular(20.0))), backgroundColor: Colors.green, content: Container(...) ), }),
7uzetpgm5#
这个代码块是我的工作。在这里你可以从这一行改变颜色data:Theme.of(context).copyWith(dialogBackgroundColor:颜色:白色)
void openDialog(BuildContext context) { showDialog( context: context, barrierDismissible: true, builder: (context) { return Theme( data: Theme.of(context).copyWith(dialogBackgroundColor: Colors.white), child: new SimpleDialog( title: new Text("Title Here...."), children: <Widget>[ new SimpleDialogOption( child: Text('Demo Text One'), onPressed: () { Navigator.pop(context); }, ), new SimpleDialogOption( child: Text('Demo Text Two'), onPressed: () { Navigator.pop(context); }, ), new SimpleDialogOption( child: Text('Close'), onPressed: () { Navigator.pop(context); }, ), ], ), ); }, ); }
kpbwa7wx6#
如果你使用的是材质3,你应该将属性surfaceTintColor设置为透明
Dialog( backgroundColor: MyColors.white, surfaceTintColor: Colors.transparent, child: ... )
这就是对我起作用的:)
uoifb46i7#
showDialog(barrierColor:ColorName.black343435.withOpacity(0.95),context:上下文,构建器:(BuildContext context){ return .....})中;
isr3a4wc8#
showDialog( context: context, barrierDismissible: false, // user must tap button! builder: (BuildContext context) { return AlertDialog( title: Text('Are you sure?'), content: SingleChildScrollView( child: ListBody( children: <Widget>[ Text("Another question will be passed"), ], ), ), actions: <Widget>[ TextButton( child: Text('Yes'), onPressed: () { setState(() { if (sayac > 0 && sayac < nqSize - 1) { sayac++; _character=SingingCharacter.qsN; } }); Navigator.of(context).pop(); }, ), TextButton( child: Text('No'), onPressed: () { Navigator.of(context).pop(); }, ), ], // elevation: 20.0, backgroundColor: Colors.redAccent, shape: new RoundedRectangleBorder( borderRadius: new BorderRadius.circular(25.0), ), ); }, );
8条答案
按热度按时间a9wyjsp71#
您现在可以使用
AlertDialog
的backgroundColor
属性来更改颜色。cczfrluj2#
您可以在不使用
Builder
的情况下执行此操作。下面是一个例子。
x3naxklr3#
您需要像这样将
Dialog
Package 在Builder
中。在此之后,dialogBackgroundColor
将产生影响。yquaqz184#
您现在可以使用AlertDialog的backgroundColor属性来更改颜色。
7uzetpgm5#
这个代码块是我的工作。在这里你可以从这一行改变颜色data:Theme.of(context).copyWith(dialogBackgroundColor:颜色:白色)
kpbwa7wx6#
如果你使用的是材质3,你应该将属性surfaceTintColor设置为透明
这就是对我起作用的:)
uoifb46i7#
showDialog(barrierColor:ColorName.black343435.withOpacity(0.95),context:上下文,构建器:(BuildContext context){ return .....})中;
isr3a4wc8#