Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I hope that when using GFAlert and showDialog together, GFAlert can be vertically centered. #352

Open
windinternet opened this issue Jan 4, 2024 · 0 comments

Comments

@windinternet
Copy link

windinternet commented Jan 4, 2024

Is your feature request related to a problem? Please describe.

It seems that the native GFAlert needs to be used with GFFloatingWidget because it requires providing some containers, masks, etc. This is too complicated and inflexible for popping up dialogs on other pages. Therefore, I want to use showDialog with Material to simplify the use of GFAlert. However, I found that GFAlert cannot be vertically centered even if I set the alignment of GFAlert to center. I also tried wrapping GFAlert with a layer of GFFloatingWidget, but it still doesn't work. So, I came here to ask questions, haha.

Describe the solution you'd like

just like:

static void showCustomDialog(BuildContext context,
      {required Widget widget, bool refuseBack = true, String? title, VoidCallback? onOk}) {
    showDialog(
      context: context,
      barrierDismissible: false,
      barrierColor: Colors.black54,
      builder: (BuildContext context) {
        return WillPopScope(
          onWillPop: () async => !refuseBack,
          child: GFAlert(
            title: title,
            content: widget,
            alignment: Alignment.center,
            onTapOk: () {
              onOk?.call();
              Navigator.pop(context);
            },
            onTapCancel: () {
              Navigator.pop(context);
            },
          ),
        );
      },
    );
  }

Describe alternatives you've considered

static void showCustomDialog(BuildContext context,
      {required Widget widget, bool refuseBack = true, String? title, VoidCallback? onOk}) {
    showDialog(
      context: context,
      barrierDismissible: false,
      barrierColor: Colors.black54,
      builder: (BuildContext context) {
        return WillPopScope(
          onWillPop: () async => !refuseBack,
          child: GFFloatingWidget(
            body: GFAlert(
              title: title,
              content: widget,
              alignment: Alignment.center,
              onTapOk: () {
                onOk?.call();
                Navigator.pop(context);
              },
              onTapCancel: () {
                Navigator.pop(context);
              },
            ),
          ),
        );
      },
    );
  }

Additional context
none

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant