dart - 如何在事件之上创建一个透明的全屏对话框 - Flutter

标签 dart flutter flutter-layout

我正在尝试在事件之上创建一个透明的全屏对话框。我试过关注这个 thread但解决方案不起作用。

简而言之,我需要的是:

  • 全屏对话框。
  • 除了我用于对话框的小部件之外的透明背景

这是我的代码:

To open dialog

void onNextBtnClick(){
    var route = new MaterialPageRoute(
        builder: (BuildContext context) =>
        new GenreDialogUI(),fullscreenDialog: true
    );
    Navigator.of(context).push(route);
}

For Dialog view

import 'package:flutter/widgets.dart';

class HolePuncherPainter extends CustomPainter {
  static final clearPaint = new Paint()
    ..color = Colors.transparent,
    ..blendMode = BlendMode.clear;

  const HolePuncherPainter();

  @override
  void paint(Canvas canvas, Size size) {
    canvas.drawRect(
        new Rect.fromLTWH(0.0, 0.0, size.width, size.height), clearPaint);
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return true;
  }
}

class GenreDialogUI extends StatefulWidget {
   @override
   _GenreDialogUI createState() => new _GenreDialogUI();
}

class _GenreDialogUI extends State<GenreDialogUI>  {

  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: addAppbar(),
      body: new CustomPaint(
        painter: HolePuncherPainter(),
        child: new Container(
        color: Colors.transparent,
        alignment: Alignment.center,
        child: UtilCommonWidget.addText('Transparent Dialog', Colors.red, 22.0, 1),
        ),
      ),
    );
  }
}

最佳答案

Navigator.of(context).push(PageRouteBuilder(
    opaque: false,
    pageBuilder: (BuildContext context, _, __) {
        return YourFullScreenAlertDialog()
    }
));

YourFullScreenAlertDialog 可以是具有背景颜色 Colors.transparent 的小部件,例如 @creativecreatorormaybenot前面提到过。

关于dart - 如何在事件之上创建一个透明的全屏对话框 - Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51258666/

相关文章:

dart - 如何将新表添加到sqlite?

for-loop - 在 Dart 中是否允许在 for 循环内等待?

android - 警告 : The plugin firebase_storage requires Android SDK version 31. 一个或多个插件需要更高的 Android SDK 版本

android - 在应用程序首次加载时尝试创建 JSON 文件时出现创建失败错误

滚动期间的 Flutter- Listview 落后于小部件上方

dart - 卡片宽度与父级匹配 : flutter

dart - 如何使用英雄在 2 个不同的按钮之间有相同的页面目标

flutter - 如何在 flutter 中将 List<Asset> 转换为 List<File>

flutter - 在 Flutter 中将图像 Assets 转换为 base64

Flutter 无法使用 PageTransitionSwitcher 保持选项卡的状态