dart 抖动更改对话框背景颜色

polkgigr  于 2023-09-28  发布在  其他
关注(0)|答案(8)|浏览(146)

我使用dialogBackgroundColor属性仍然没有改变颜色。谁能告诉我如何改变对话框的背景颜色?

a9wyjsp7

a9wyjsp71#

您现在可以使用AlertDialogbackgroundColor属性来更改颜色。

AlertDialog(
  backgroundColor: Colors.orange,
  ...
)
cczfrluj

cczfrluj2#

您可以在不使用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"),
  );
}
x3naxklr

x3naxklr3#

您需要像这样将Dialog Package 在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"),
      );
    },
  ),
)
yquaqz18

yquaqz184#

您现在可以使用AlertDialog的backgroundColor属性来更改颜色。

showDialog(
   context: context,
   builder: (BuildContext context) {
       return AlertDialog(
         shape: RoundedRectangleBorder(
         borderRadius: BorderRadius.all(Radius.circular(20.0))),
         backgroundColor: Colors.green,
   content: Container(...)
),
}),
7uzetpgm

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);
                },
              ),
            ],
          ),
        );
      },
    );
  }
kpbwa7wx

kpbwa7wx6#

如果你使用的是材质3,你应该将属性surfaceTintColor设置为透明

Dialog(
   backgroundColor: MyColors.white,
   surfaceTintColor: Colors.transparent,
   child: ... )

这就是对我起作用的:)

uoifb46i

uoifb46i7#

showDialog(barrierColor:ColorName.black343435.withOpacity(0.95),context:上下文,构建器:(BuildContext context){ return .....})中;

isr3a4wc

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),
                            ),
                        );
                      },
                    );

相关问题