首页 > 解决方案 > 在不使用 resizeToAvoidBottomInset 的情况下清除白盒:false

问题描述

我正在使用 Flutter 和 webview_flutter 包开发应用程序。

使用默认配置,我在屏幕底部得到一个白框。

在此处输入图像描述

当我把这段代码放到脚手架上时:

resizeToAvoidBottomInset: true

它消失了:

在此处输入图像描述

但在这种情况下,Webview 在打开虚拟键盘时不会自动调整大小。

在此处输入图像描述

如果我不使用“resizeToAvoidBottomInset:true”它会调整大小,但会出现第一张图片中的白框。

还有其他方法可以清除那个白框吗?

我的代码:

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

class WebViewExample extends StatefulWidget {
  @override
  _WebViewExampleState createState() => _WebViewExampleState();
}

class _WebViewExampleState extends State<WebViewExample> {
  final Completer<WebViewController> _controller =
  Completer<WebViewController>();

  @override
  Widget build(BuildContext context) {
    SystemChrome.setEnabledSystemUIOverlays([]);
    return Scaffold(
        resizeToAvoidBottomInset: false,
        appBar: null,
      body: Builder(builder: (BuildContext context) {
        return WebView(
          userAgent: "random",
          initialUrl: 'https://www.2harf.com',
          javascriptMode: JavascriptMode.unrestricted,
          onWebViewCreated: (WebViewController webViewController) {
            _controller.complete(webViewController);
          },
          onPageStarted: (String url) {
            print('Page started loading: $url');
          },
          onPageFinished: (String url) {
            print('Page finished loading: $url');
          },
          gestureNavigationEnabled: false,
        );
      })
    );
  }

标签: flutterdartwebview-flutter

解决方案


如果您的应用不是全屏的,请使用

    SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);

推荐阅读