Flutter获取已经加载完成网页的高度
时间: 2024-04-03 17:36:29 浏览: 137
在Flutter中,你可以使用`flutter_inappwebview`插件来加载网页并获取其高度。以下是获取已经加载完成网页高度的示例代码:
```dart
import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
class MyWebView extends StatefulWidget {
@override
_MyWebViewState createState() => _MyWebViewState();
}
class _MyWebViewState extends State<MyWebView> {
InAppWebViewController _webViewController;
double _webviewHeight = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Expanded(
child: InAppWebView(
initialUrl: 'https://www.example.com',
onWebViewCreated: (InAppWebViewController controller) {
_webViewController = controller;
},
onLoadStop: (InAppWebViewController controller, String url) async {
double height = await _webViewController.getContentHeight();
setState(() {
_webviewHeight = height;
});
},
),
),
Container(
height: _webviewHeight,
color: Colors.grey[200],
),
],
),
);
}
}
```
在上面的代码中,我们创建了一个`MyWebView`小部件,它包含了一个`InAppWebView`小部件和一个容器。当网页加载完成后,我们将通过`getContentHeight`方法获取网页的高度,并将其保存在`_webviewHeight`变量中。最后,我们将`_webviewHeight`用作容器的高度,以便正确显示网页。
阅读全文