tapgesturerecognizer 在颤振 webview 中不起作用

ram*_*man 1 dart flutter

我尝试在 flutter webview 中使用 GestureRecognizer 来缩小双捏。但它不起作用。如果您有任何解决方案,请帮助我

import 'dart:async';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/gestures.dart';

void main()=>runApp(WebView());

class WebView extends StatefulWidget {
  @override
  _WebViewState createState() => _WebViewState();
}

class _WebViewState extends State<WebView> {
  final Completer<WebViewController> _controller =
      Completer<WebViewController>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(


      body: Builder(builder: (BuildContext context) {
        return WebView(
          key: UniqueKey(),
          gestureRecognizers:
          Set()..add(Factory<TapGestureRecognizer>(() => TapGestureRecognizer(),)),//ZOOM WEBVIEW

          initialUrl:
              '/sf/',

          javascriptMode: JavascriptMode.unrestricted,
          onWebViewCreated: (WebViewController webViewController) {
            _controller.complete(webViewController);
          },
        );
      }),

    );
  }
}

Run Code Online (Sandbox Code Playgroud)

这是代码的重要部分如果您需要完整的代码,请发表评论。

小智 5

我遇到了同样的问题,并且能够TapGestureRecognizer通过将其包裹WebViewGestureDetector其中来进行工作onTap()。除了我不知道它为什么会起作用。

@override
 Widget build(BuildContext context) {
return Scaffold(
  body: GestureDetector(
    onTap: () {
      print("This one doesn't print");
    },
    child: Container(
      child: Stack(
        children: <Widget>[
          WebView(
            initialUrl:
                'example.com',
            javascriptMode: JavascriptMode.unrestricted,
            onWebViewCreated: (WebViewController webViewController) {
              _controller.complete(webViewController);
            },
            gestureRecognizers: Set()
              ..add(
                  Factory<TapGestureRecognizer>(() => TapGestureRecognizer()
                    ..onTapDown = (tap) {
                      print("This one prints");
                    })),
          ),
        ],
      ),
    ),
  ),
);
}
Run Code Online (Sandbox Code Playgroud)

想知道是否有人有类似的问题并使其正常工作。

  • 也许这是使用 webview 的正确方法,但还有另一个问题,onTapDown 工作正常,但 onTap 不工作,你对此有什么想法吗? (3认同)