flutter - 在不使用 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,
);
})
);
}
解决方案
如果您的应用不是全屏的,请使用
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.bottom]);
推荐阅读
- javascript - 指数运算符 ^ 和 Math.pow() 之间的区别
- stm32 - Rs485 DE信号,置位时间和置位时间
- python - flask-user 限制用户注册
- apache - 通过 .htaccess 屏蔽子域 IP 地址(Url)
- file - 如何在ROS中找到生成文件的程序?
- azure - sparklyr livy 协议中的 Kerberos 参数
- java - Maven 3:从孙子 pom 访问 parent.parent.version
- sql - 池上的每个查询都在连接时触发
- c# - 与 C++ std::map::insert 行为相比,C# SortedDictionary 效率
- r - 仅搜索和替换 R 中的特定行