Flutter webView 页面自适应高度
时间: 2024-02-01 11:03:06 浏览: 292
要实现 Flutter WebView 页面自适应高度,可以使用 flutter_webview_plugin 插件。该插件提供了一个 onStateChanged 回调函数,可以监听 WebView 页面的状态改变。当页面加载完成后,可以获取 WebView 页面的高度,并将其应用到 WebView 上,从而实现自适应高度。
以下是一个简单的示例代码,演示如何实现 Flutter WebView 页面自适应高度:
```dart
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
class MyWebView extends StatefulWidget {
final String url;
MyWebView({required this.url});
@override
_MyWebViewState createState() => _MyWebViewState();
}
class _MyWebViewState extends State<MyWebView> {
double webViewHeight = 100.0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
height: webViewHeight,
child: WebviewScaffold(
url: widget.url,
withZoom: false,
withJavascript: true,
withLocalStorage: true,
hidden: true,
initialChild: Container(
color: Colors.white,
child: Center(
child: CircularProgressIndicator(),
),
),
appBar: AppBar(
title: Text('WebView Demo'),
),
onStateChanged: (state) {
if (state.type == WebViewState.finishLoad) {
setState(() {
webViewHeight = double.parse(state.height.toString());
});
}
},
),
),
);
}
}
```
在上面的代码中,我们定义了一个 MyWebView 类,使用 WebviewScaffold 来渲染 WebView 页面。在 onStateChanged 回调函数中,我们监听 WebView 页面的状态改变,并在页面加载完成后获取 WebView 的高度,并将其应用到 WebView 上。这样,就可以实现 WebView 页面的自适应高度了。
阅读全文