万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Flutter公式WebView(WebViewWidget)で表のウィジットで裏に通さない手段

    flutter_webviewWebViewWidgetWebViewWidgetウィジットの表にFlutterのボタンというかウィジットがあったとしても AbsorbPointerIgnorePointerを使っても貫通されしまう。 https://pub.dev/packages/pointer_interceptor ってプラグインでも無理。

    https://stackoverflow.com/questions/55430842/flutter-absorbpointer-vs-ignorepointer-difference#comment114190525_55431032

    https://github.com/flutter/flutter/issues/81367

    Googleの技術力が低すぎてできないのか、 しかし、WebViewWidget なら貫通しないっぽい??

    こんなの作る。

    import 'package:flutter/material.dart';
    import 'package:webview_flutter/webview_flutter.dart';
    
    /// WebViewをガードする
    class WebViewGuard extends StatefulWidget {
      const WebViewGuard({Key? key}) : super(key: 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,
        );
      }
    }

    使うときは

    Stack(
      children: [
        // タップを裏に貫通させない
        const SizedBox(height: 60, child: WebViewGuard()),
        const Text('メッセージ'),
      ],
    ),

    見たく。 Stack で挟んで使う