Почему я не могу прокручивать пользовательский WebView в Flutter ModalBottomSheet

Привет, ребята, кто-нибудь знает, почему я не могу вертикально прокручивать WebView в моем ModalBottomSheet? Это мой код, пожалуйста, дайте мне знать, если что-то не так, или дайте мне совет.

showModalBottomSheet(
      context: context,
      isScrollControlled: true,
      backgroundColor: Colors.transparent,
      builder: (context) => Container(
        height: MediaQuery.of(context).size.height * 0.75,
        decoration: new BoxDecoration(
          color: Colors.white,
          borderRadius: new BorderRadius.only(
            topLeft: const Radius.circular(25.0),
            topRight: const Radius.circular(25.0),
          ),
        ),
        child: Padding(
          padding: EdgeInsets.fromLTRB(0, 23, 0, 0),
          child: WebView(
              initialUrl: 'https://www.sicepat.com/checkAwb/',
              javascriptMode: JavascriptMode.unrestricted,
              onWebViewCreated: (controller) {
                _myController = controller;
              },
          onPageFinished: (initialUrl) {
            _myController.evaluateJavascript("document.getElementsByClassName('ws-header-container')[0].style.display='none';");
            _myController.evaluateJavascript("document.getElementsByClassName('ws-footer-page')[0].style.display='none';");
          },
        )
        ),
      ),
    ); 

3 ответа

Решение

Попробуй использовать gestureRecognizers и установите WebView ключ

final Set<Factory> gestureRecognizers = [Factory(() => EagerGestureRecognizer())].toSet();

UniqueKey _key = UniqueKey();

WebView(
  key: _key,
  initialUrl: 'https://www.sicepat.com/checkAwb/',
  javascriptMode: JavascriptMode.unrestricted,
  gestureRecognizers: gestureRecognizers,
  onWebViewCreated: (controller) {
   _myController = controller;
  },
  onPageFinished: (initialUrl) {
   _myController.evaluateJavascript("document.getElementsByClassName('ws-header-container')[0].style.display='none';");
   _myController.evaluateJavascript("document.getElementsByClassName('ws-footer-page')[0].style.display='none';");
  },
)

Для более новой версии Flutter;

        final Set<Factory<OneSequenceGestureRecognizer>> gestureRecognizers = {
    Factory(() => EagerGestureRecognizer())
  }; 

Как добавить распознаватель жестов в этот код?

       var controller = WebViewController()

  ..setJavaScriptMode(JavaScriptMode.unrestricted)
  ..setBackgroundColor(const Color(0x00000000))
  ..setNavigationDelegate(
  NavigationDelegate(
  onProgress: (int progress) {
  // Update loading bar.
  },
    
  onPageStarted: (String url) {},
  onPageFinished: (String url) {},
  onWebResourceError: (WebResourceError error) {},
  onNavigationRequest: (NavigationRequest request) {

  return NavigationDecision.navigate;
  },
  ),
  )
  ..loadRequest(Uri.parse('https://www.mgazeti.com/terms-and-conditions'));
Другие вопросы по тегам