cmdrootaccess / another-flushbar

A flexible widget for user notification. Customize your text, button, duration, animations and much more. For Android devs, it is made to replace Snackbars and Toasts.
https://pub.dev/packages/another_flushbar
MIT License
146 stars 89 forks source link

penetration on WebView #115

Open mkbsugita opened 1 year ago

mkbsugita commented 1 year ago

Describe the bug

I put the flushbar on WebView (webview_flutter). my tap penetrates the flushbar and taps button on WebView.

To Reproduce Steps to reproduce the behavior:

    await Flushbar<dynamic>(
      padding: EdgeInsets.zero,
      messageText:
          Padding(
            padding: const EdgeInsets.all(16),
            child: Center(
              child: Text(
                message,
                textAlign: TextAlign.center,
                style: const TextStyle(
                  color: Colors.white,
                  fontSize: 16,
                  fontWeight: FontWeight.bold,
                ),
              ),
            ),
          ),
      duration: Duration(milliseconds: (showTime * 1000).toInt()),
      flushbarPosition: FlushbarPosition.TOP,
    ).show(context);

and call the showToast method.

Expected behavior

non-penetration

Smartphone (please complete the following information):

Additional context

I made gard WebView below.

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class WebViewGuard extends StatefulWidget {
  const WebViewGuard({super.key});

  @override
  WebViewGuardState createState() => WebViewGuardState();
}

class WebViewGuardState extends State<WebViewGuard> {
  WebViewController controller = WebViewController();
  @override
  void initState() {
    super.initState();

    Future(() async {
      await controller.setBackgroundColor(Colors.transparent);
    });
  }

  @override
  Widget build(BuildContext context) {
    return WebViewWidget(
      controller: controller,
    );
  }
}
    await Flushbar<dynamic>(
      padding: EdgeInsets.zero,
      messageText: Stack(
        alignment: AlignmentDirectional.center,
        children: [
          // I dded this.. but wired
          const SizedBox(height: 60, child: WebViewGuard()),
          Padding(
            padding: const EdgeInsets.all(16),
            child: Center(
              child: Text(
                message,
                textAlign: TextAlign.center,
                style: const TextStyle(
                  color: Colors.white,
                  fontSize: 16,
                  fontWeight: FontWeight.bold,
                ),
              ),
            ),
          ),
        ],
      ),
      duration: Duration(milliseconds: (showTime * 1000).toInt()),
      flushbarPosition: FlushbarPosition.TOP,
    ).show(context);
mkbsugita commented 1 year ago

no answers. sigh sigh

cmdrootaccess commented 1 year ago

which webview_flutter version are you using ?

mkbsugita commented 1 year ago

@cmdrootaccess Thank you for replying. I use 4.0.7 version. Is your webview guards from it?