如何更改CupertinoAlertDialog的背景颜色?

时间:2019-08-27 14:11:47

标签: flutter dialog

我要创建一个深色背景的CupertinoAlertDialog。

并且我尝试使用主题小部件来解决此问题,但是它不起作用。

此处有一些代码:

showDialog() {
    showCupertinoDialog(
        context: context,
        builder: (context) {
          return Theme(
            data: ThemeData(
                dialogBackgroundColor: Colors.black,
                dialogTheme: DialogTheme(backgroundColor: Colors.black)),
            child: CupertinoAlertDialog(
            title: Text('Title'),
            content: Text('Some message here'),
            actions: <Widget>[
               FlatButton(
                 onPressed: () {
                   Navigator.of(context).pop();
                 },
                 child: Text('OK'),
               ),
             ],
           ),
         );
       },
     );
  }

enter image description here

3 个答案:

答案 0 :(得分:3)

使用Colors.black代替使用ThemeData.dark()

showDialog() {
    showCupertinoDialog(
        context: context,
        builder: (context) {
          return Theme(
            data: ThemeData.dark(),
            child: CupertinoAlertDialog(
            title: Text('Title'),
            content: Text('Some message here'),
            actions: <Widget>[
               FlatButton(
                 onPressed: () {
                   Navigator.of(context).pop();
                 },
                 child: Text('OK'),
               ),
             ],
           ),
         );
       },
     );
  }

答案 1 :(得分:1)

背景色是硬编码的:

https://github.com/flutter/flutter/blob/20e59316b8b8474554b38493b8ca888794b0234a/packages/flutter/lib/src/cupertino/dialog.dart#L198

enter image description here

但是您可以创建自己的小部件,而不是默认的小部件。

答案 2 :(得分:0)

也许你可以用adaptive_Dialog代替它 https://pub.dev/packages/adaptive_dialog