Flutter showDialog,AlertDialog背景渐变,

dffbzjpn  于 2023-11-21  发布在  Flutter
关注(0)|答案(2)|浏览(170)

对于颜色,我可以使用dialogBackgroundColor属性为AlertDialog背景给予我自己的颜色。
我正在寻找使用Gradient作为我的背景。我怎么能使用它?DecoratedBox是需要的东西,但我不知道该用什么 Package 。任何人都可以给给予我同样的想法或链接吗?

krugob8w

krugob8w1#

您可以在容器中添加一个容器,容器将被渐变装饰。例如:

class GradientDialog extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new _GradientDialogState();
  }
}

class _GradientDialogState extends State<GradientDialog> {

  @override
  Widget build(BuildContext context) {
    return AlertDialog(
      content: Container(
        constraints: const BoxConstraints(),
        padding: const EdgeInsets.all(8.0),
        decoration: new BoxDecoration(
            gradient: new LinearGradient(
                colors: AppColors.BG_GRADIENT,
                begin: Alignment.topCenter,
                end: Alignment.bottomCenter)),
        child: YourContentInside(),

      ),
      contentPadding: EdgeInsets.all(0.0),
    );
  }
}

字符串
打开它与

showDialog(
    context: context,
    barrierDismissible: true,
    builder: (BuildContext context) {
      return GradientDialog();
    });

kq0g1dla

kq0g1dla2#

AlertDialogbuild方法中有return Dialog(child: dialogChild, shape: shape);。在Dialog.build()中-它返回Material(color: _getColor(context), ...。没有自定义就无法为AlertDialog设置渐变背景。
如果需要的话,我可以添加一些例子。
P.S.或者您可以调用showDialog并发送另一个小部件而不是AlertDialog

相关问题