我正在使用dialogBackgroundColor
属性,但颜色没有改变。谁能告诉我如何更改对话框的背景颜色?
答案 0 :(得分:5)
您需要像这样将Dialog
包裹在Builder
中。之后dialogBackgroundColor
将生效。
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"),
);
},
),
)
答案 1 :(得分:1)
此代码块对我有用。 在这里,您可以从此行更改颜色 data:Theme.of(context).copyWith(dialogBackgroundColor:Colors.white)
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);
},
),
],
),
);
},
);
}
答案 2 :(得分:1)
您现在可以使用 AlertDialog 的 backgroundColor 属性来更改颜色。
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(20.0))),
backgroundColor: Colors.green,
content: Container(...)
),
}),
答案 3 :(得分:0)
您可以在不使用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"),
);
}
答案 4 :(得分:0)
您现在可以使用pom.xml
的{{1}}属性来更改颜色。
backgroundColor
答案 5 :(得分:0)
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),
),
);
},
);